It has been quite a while since I posted, I have just been so busy with work Christmas coming up etc I have not had any time to do much more. I must admit it is a terrible excuse I have also been struggling to find stuff to post about but I realised the point of this blog was to enjoy posting about new stuff or old stuff I find interesting that I want to talk about. I don’t want to feel like oh I have to post if I force myself I will just end up posting crap. I also want to get a bit more personal on the blog so this week I am going to discuss “Improving as a Programmer”.
I believe in constantly trying to improve your skills in every part of your life. For the last few months, I honestly feel like I have not been improving as a programmer as much as I would like. When I was in college it was a case of learning something new every single day, as life goes on and you get a job and the more and more you work on the same team/ the same job you find your learning suffering. When you come home the last thing you want to be doing is going back onto the computer to learn it feels like more ‘work’ which leads to getting comfortable. Feeling comfortable feels great, feels safe or at least it does until you slowly realise you are comfortable and then taught’s start running through your head questioning your ability. Now this feeling for me at least seems to come in cycles…I get a new project something I have never worked on before so I start learning again and at the start feel uncomfortable then after some time working on the project the needle starts to move towards comfortable, from what I have seen that is just the learning cycle. As with everything in life, the only way to get out of your comfort zone is to take on new challenges, new habits, new projects, this is what I find myself doing, it’s just case of realising oh I am getting comfortable I need something new.
The above brings up another problem for people that get bored easily and constantly switch tasks when they think they are comfortable when in fact they are so much more to learn. I admit I am somewhat this type of person, I will start looking into a technology work on it once or twice and they say ‘ok great, I know this now let’s move on’ and it stops me being more of an expert in that particular technology. An example of this for me would be Python, I used python pretty much every single day in my work and outside and I taught I knew it pretty well but a recent experience with another developer showed me python is so much bigger and there are many incredible useful features I do not know about. The problem was the scope I had to look at was limited and I learned everything from there and when I develop new things in python I just use that limited set of the language. Now I know it’s virtually impossible to use every feature of a programming language and you will natural use what you are most comfortable with but that doesn’t mean you should disregard the rest of the language. After getting that off my chest I wanted to share some ways I have found to help me improve as a programmer…
Watching YouTube videos
This may seem obvious or even counter-productive, “you’re trying to be a better programmer you should be programming…” I whole heartily disagree and you can always watch and program together depending on the video and what the subject is. I should also clarify when I improve as a programmer I don’t just mean technically I mean all round e.g the “Soft skills” of being a programmer. A programmer without any soft skills is completely useless in my opinion, you can be the best programmer in the world but if you cannot work in a team or communicate correctly you’re useless. Here are some of my favourite YouTuber’s in no particular order:
- MyCodeSchool - Excellent resource for typical interview technical questions, explained very well: https://www.youtube.com/user/mycodeschool
- Simple Programmer - John is a crazy dude, ex-programmer now entrepreneur/life coach has very interesting video’s on all aspects of programming, from learning all the soft skill’s you need to improving as a programmer technically https://www.youtube.com/user/jsonmez
- DevTips - Currently working at google has excellent tutorials on web design and a collection of personal videos that are very interesting https://www.youtube.com/user/DevTipsForDesigners
- LearnCodeAcademy - If you are interested in anything to do with the web and you want to do any web development follow this guy he is one of the only YouTubers that seem to have already used any of the new upcoming technologies: https://www.youtube.com/user/learncodeacademy
Practising problem Solving
This is a relativity new find for me, unfortunately, Basically, it’s a site that sometimes has a built-in editor that allows you to solve problems and be “graded” on the solution. This is great if you’re feeling a bit rusty on topics such as Algorithms, regular expressions, maths or even getting started with programming.
- Hackerank.com - Awesome website for acquiring/improving problem-solving skills, wide range of topics from Algorithms to Artificial Intelligence, then even have online coding competitions where you can win real prizes.
- Projecteuler.net - Awesome collection of mostly math based problems they are not as advanced as Hackerank they don’t have a built-in editor, they don’t run test cases against your code and they don’t have a fancy UI…however the advantage of all that is you have to think of every test case yourself to get the right answer. There is only one right answer and all Project Euler cares about it that you get the right answer. It doesn’t care if your code takes X time to run if you get the right answer you solved it which some people might prefer.
“Books?? really Jason what could we possibly learn from books that is not available online..” I somewhat agree :) but books are awesome resources and they are sometimes handy to have them sitting beside you so you can quickly reference.
- Soft Skills: The software developer’s life manual By John Sonmez - This is the book that showed me being a great programmer is not just being good technically it also taught me you need to know the Soft skills of being a programmer. The topic of the book specifically relates to people that are already developers and want to go that extra mile.
- 97 Things Every Programmer Should Know - You can get this as an eBook it’s great resources of some things every programmer should know, it goes into topics such as refactoring, readability and much much more.
- Code Complete - Classic book just get it and be amazed and how much of a better programmer you become.
- How to win friends and influence people - Another classic book it was written some time and it still extremely relevant today, it shows you best way to deal with people, how to become everybody friend and become an overall better person.
There you have some of the main ways that I find myself going to when I start to get comfortable and I want to get myself learning again. As with all suggestions, these are the things I do to get me going again they might not work for you and that is ok just find something to feed your brain and improve yourself every single day. I hope you enjoyed this off topic post it’s a bit more personal but what is a blog without some personality :)