2016-01-25

Sorry, this is going to be a little long but I hope it's a little interesting. I kept copy-editing it and it just kept getting longer.

Quick caveat

I am currently at Tuks doing BIS Multimedia and unfortunately I still have two modules to wrap up. One is a year module that I only have to attend on a Monday 11:30 for the entire year and the other will be second semester which is 3D modelling and might make me loose about 5 hours of my week when attending all classes.

About me

I first learned PHP in 2009 in High School but from 2011 til 2014 I was all PHP. I know PHP better than I do Java and the C++ that we were taught. I did everything with it building my little social network that I recreated over 20 times because the code looked like crap when I finished. I used it with Memcached, MongoDb and even Cassandra all because I wanted my little "social network for students" to be ready in case it received wide adoption. I first learned MVC with it used CodeIgniter and Symfony for some time. In short, I could say PHP was my hobby as it took all my weekends and holidays in hopes of finishing what I was building. I've deployed it multiple times on Hostgator and Whois. Nowadays I use amazon aws.

In 2014 June I decided to learn Laravel 4, I followed tutorials and was getting things done at a slow pace because I was trying to understand every part of why I was doing something thing especially with their built in User. I was using MVC wrong, the concept of "fat models and thin controllers" didn't mean anything since it was my own initiative to learn this and so getting it to work is what mattered. Eventually I read somewhere that Laravel 4 was hugely based on Rails and doing a book search on it-ebooks.info , I found tons of Rails books and picked the latest in the hopes that the book would explain what the Laravel documentation didn't explain clearly. Like why do I call things like "beforeFilter" in some controllers and so on.

The plan was to go through the whole Rails book in hopes that it would help me understand Laravel so I can rebuild my social network using a MVC approach, symfony was a little too much for me. Three months into using Ruby, PHP kinda lost a future programmer which was confirmed in December. Ruby is so nice that I rebuilt the "social network" with it, it is now on www.bazido.com:4000 (the ssl certificate is expired now). I tried to speed it up using memcached (the queries,), it can receive payments using Paypal (I did not have R1000 a month for other gateways) and has some other stuff like notification. They all use Postgres but I can mainly write raw MySQL queries from the days I used PHP. I'm more of a developer and not a DBA and still use PHP but not for my personal projects. Will have to see with PHP 7.

This year in November I figured it had feature creep, I feel the code is a little crapish and rebuilt it with less stuff but more focused on the market end. etc I took a break adding other things now.

Experiences from my little social network - tl;dr

After using Rails I have learned things such as one should keep you secret keys out of your repositories so db.php must read the password from the environment. It has become easier to learn new stuff since and I'm now proficient in PHP, Ruby and Golang. I still get bitten by javascript when using Nodejs. I've also been using front-end stuff and there are too many too list but not that I am not a master in them but VueJS and Backbone standout. I was just using most of them as I see them in job posts. As a side note, I prefer Gulp over Grunt and only use the latter as part of Yeoman with Angular. All of my code does not have unit tests because it just complicates things when learning. Especially with rails, it's easy to get a gem(plugin) to work but using it in a test was just too time consuming.

The rails apps I have: www.bazido.com:4000, www.bazido.com:5000 has less features, www.bazido.com:7000 started it three weeks ago and now I've been a little lazy. The code for the latter is at github

I plan to do a lot of BDD in my own stuff this year. For the time being, I'm planning to go the front end direction but keep doing back end stuff in my own time. But it really doesn't matter, I want to be a full stack guy later on in life.

The plan

Being in South Africa and in specifically in Pretoria, I'd say there is like 1 ruby jobs in 15000 posts so I have to go the PHP route since I know that even better. Unfortunately I don't have a personal project to show, the older project I made with PHP are crappier and I've learned a lot since then.

The biggest down side with PHP jobs are the salaries being low even as you get more experience. As a South African I feel as if I have invested in the wrong languages even though they taught me so much. I want to use C# this year and specifically .net because I see it pays better and has more opportunities. I'll reserve my passion for open source stuff. My only C# experience was with Unity on our final year game project for BIS Multimedia. I have a ebook on ASP.NET but I'm reading one on the Entity Framework. The ebook just flies past Entity and so I needed something to cover the nitty-gritty details.

Why post this here

Well, recruiters don't seem to be working for me or maybe I could be impatient. All posts from recruiters want two years experience and up. Of course I do stuff in my own time but I feel it would take a real programmer to actually understand and I've been rebuilding this thing so long I feel as if I got my little 2 years experience. Some salaries are low so I usually assume that they don't do Scrum, Unit Testing, Continous Integration, Version Control their source code and so on. I've seen some people doing web stuff and not knowing what git is. I'd like to be in an environment where I can learn these things. To be honest, there is no way I can experience Scrum/agile development alone. What is five years experience without knowing them?

Hopefully someone might know somewhere I can go and work/intern this year and actually get experience. After all, I'll be attending one module a week for the next six months. I'm a Multimedia student, I could add extra modules such as Software Engineering but I think it's better to go to "experience" school, I've realised that qualification school is not enough. :-)

Since I still have to finish off my year, If someone has some recommendations of companies I can contact and do a year with them, I'd prefer it be a little close to Tuks. By that I mean Centurion, Midrand, Sandton and not Durban, Cape Town and so on.

Your help in getting me to the C# world would be much appreciated.

Show more