So as an
experienced old programmer I’ve been asked a few times:
“How do I get started in programming”
I’ve gone from being a geek when I was 8 years old to about 16 playing computer games and messing with my Dad’s ZX81 then getting a ZX Spectrum, Amstrad PC1512, old BBS’s with 1200/2400 etc.. baud modem.
Then I got into engineering / rock climbing / travelling / being an outdoor instructor and didn’t do technology for a long time.
When I was about 29 I ‘got my foot in the door’ with a friend of the family’s company. I was a junior and learned all about TCP/IP networking, Sun Solaris, Novell Netware, IT Support, RedHat Linux, Apache, PHP (building from source). I did mostly IT support and got my first taste of programming with PHP3.
So to highlight - the important part here was getting an initial job doing something to do with computers. After that it has been easy to change within the industry. For me it has gone from IT towards programming.
Do you enjoy messing around with computers
This may seem a strange first title, but do you actually like computers (I guess you probably do as you’re reading this post), or are you after a job in programming just for the money (unusual but I’ve seen it).
Think about what you enjoy, so you can tell others about it:
- What stories do you have
- Building your own machines - CPU’s / Graphics cards?
Soft Skills - It’s about people
- Communication - can you talk to people?
- Technical skills can be taught/picked up by someone who is interested
Are you a good person
These are the kinds of questions going through a potential employers mind as they talk to you, so try to set their minds at ease:
- Will you turn up on time at work?
- Will you be a good person to work with / can talk to other people (I got an engineering job once I wasn’t suited for by telling bad jokes, and I think people liked it as it showed I can at least talk to people, and they hoped I would pick up the engineering)
Are you reasonably presentable and clean
- Showering is important
- Good haircut
- Lay off the garlic / booze sessions for a while…
CV / Resume / Online Portfolio
- Something short is good
- What about a resume website on Github Pages? Themeforest CV/Resume Templates and this one seem interesting
- Have a portfolio page that is fast and loads everything into a small space (ie not multiple pages), and works on mobile.
Having a portfolio that loads fast and can really throw everything in a small space makes a huge difference. This was a mistake I made first time around. In my first in-person interview, the only portfolio I had was on Heroku and they initially thought it didn’t work because it took so long to load(non - paid server spinning up after being idle). It also broke when they tested the mobile size. That being said, they seemed to like me and gave me a call the next day. (jm)
Go to local user groups
- This is a wonderful way to meet people and get your foot in the door
- meetup.com is a good place to search for local groups.
Hard Skills - Side Projects
I’ve not talked about hard skills yet which may seem surprising, however so much is a about what I’ve talked about above and if you have a passion to learn then your current hard skills I’d say are less important.
My most memorable interview was when the candidate said:
“I’ve got a demo a project I’m working on in my spare time, and I’ve bought it along on my laptop. Want to see it?” (dh)
He got the job!
So having fun side projects shows you have passion for something.
“Start on some projects, that’s where I felt like I learned the most by far” (jm)
Pluralsight is a subscription based video library with consistent quality videos. Around $30USD per month I really rate it and have used it for many years. The the learning ASP.NET MVC videos have taught me so much
YouTube is a great resource. This linked Python video has over 11million views.
Fun programming challenges
https://codegolf.stackexchange.com/ is a interesting place to hang out too.
https://www.hackerrank.com/ has good challenges.
“Even 15 mintutes a day of those challenges made me feel like I was improving” (JJ)
Do you use GitHub
Being able to use Git is a super important skill these days.
GitHub is now free for private repositories (for less than 5 contributors).
- Is there a project on your own Github you can talk about that you’re excited about?
Do you have Stack Overflow account
Answering others questions is a wonderful challenge
- Follow people in your local area that look interesting
Follow industry leaders eg @shanselman in C#, @troyhunt in security, @ploeh for functional programming, @nick_craver for SO, @stevejgordon for C#, @mikehadlow for C#, @richcampbell and @carlfranklin dotnetrocks podcast.
- Ask politely for others to help in getting your first job eg look at these conversations:
This could be a good resource and always worth trying. I’m here if I can help.
Resources and other stories
- Get good at googling (google is my mentor!)
- https://www.codementor.io/ looks interesting
- https://codeshare.io/ live share coding interview
- The Joel Test written 20 years ago and still very relevant!
- Ela Mościcka - journey in software engienering
- YouTube - Career Advice For Programmers - Trisha Gee
- Paul Hadfield’s articles
Here is my cheeky son wishing you good luck on your adventures in programming!