This article was originally posted on my brand new blog The Developer's Dungeon
A few weeks ago something special happened: October 8. For everyone else that means nothing, another regular day. For me on the other hand, it was my software development birthday.
At the beginning of 2014 my best friend recommended me start learning programming as he saw I was sad and tired of pursuing a career I did not really like. I started learning C on my own, dubbed a little with C++ and finally started reading “C# in Depth” based on my friend’s recommendation.
On October 8th, 2014 I joined a training program on C# given by Accenture(they called it their bootcamp), 1 month later I was working as C# Junior developer and my career in software started.
A lot of things changed in my career too: I went from self-taught to bootcamp, to switching universities to pursue software engineering, dropping out and finally continuing the self-taught route. From working in accounting to becoming a software developer, working for 3 years in my home country, Argentina, to looking for a better life in a place I knew nothing about, much less speak the same language, lovely rainy Belgium.
After reflecting on the path that brought me here, I can’t help to think about the good and bad decisions I’ve made. Here is some stuff I wish I knew when I started:
1. Go to meetups, meet new people, make friends!
People underestimate how important personal relationships and communication are in software development. Some believe in this idea of a Genius 10X developer who will code 24 hours without sleeping and create magic. This is a pipe dream. We are great at what we do when we collaborate with each other when we develop human relationships that allow us to create great pieces of software. These relationships help us grow, learn new things (not always software related which is just as valuable) and even progress in our careers. If it wasn’t for a friend of mine I would probably be a very sad accountant.
2. Read technical books.
I always preferred tutorials and online courses, but unfortunately, they won’t cover fundamental knowledge that will take your development skills to a whole new level. For the last 2 years I have been eating technical books, “The pragmatic programmer”, “Code complete”, “Clean Code”, “Refactoring”, you name it, I just wished I started earlier. There is so much knowledge out there written by pros in the industry and it’s just a pity not to pick their brains a little.
3. Focus your learning in language/framework agnostic knowledge.
4. Always have a personal project on the side.
I can’t stress enough how important this is. Sure, you code for 8 hours a day on your daily job and might be thinking, “why do I need to code in my spare time?”, well there are a number of reasons.
- It will not always be clear what you want to do with your career. When I first started I thought I wanted to be a mobile developer. It took me one personal project creating an expense reimbursement app in Xamarin as a POC for a previous employer to realize that this was not what interested me the most.
- Technical skills get outdated pretty quickly in this industry so you need to try other stuff and get a good feeling of what’s out there. It can be a very good way to build a personal portfolio, to show a potential employer that you are passionate, a problem solver and have a nice set of skills.
- If the projects get noticed by the community it can be a great way to meet other developers, make connections and friends.
5. Learn some Computer Science.
If you are a self-taught developer like me, you probably don’t want anything to do with this. Well, I will have to burst the bubble for you. Learning some key concepts will make your life a lot easier for future learning. I’m not saying you need them to be a developer but after learning about them, they will become the building blocks you will use to learn new technologies and patterns.
I spent 2 years studying computer science while working as a developer, not a lot but still was enough to get in contact with concepts like boolean algebra, groups, graphs, trees, sorting algorithms, dynamic and static memory, pointers, automata theory; even different programming paradigms — like structured, logical, functional and objects — and I can remember tons of moments where I could associate those concepts to how some new piece of tech I was learning was implemented behind the scenes.
If you re a self-taught developer I would recommend you read The Imposter ‘s Handbook 1 & 2, they cover everything you will ever need :)
After writing this article I feel much better about my progress, I made some mistakes here and there, maybe I didn’t use my time correctly. But I learned and I will continue learning no matter what because that is the most important thing I want you to remember from this, keep learning and I promise everything will be fine.
Top comments (32)
Good books tips! Thanks a lot.
Thank you! I am writing another article specially on that subject. There is tons of amazing technical books out there.
For what is worth, Humble Bundle has at least once a month a good "deal" where you get 5-10 technical books at the price of "pay what you want". While not always and not all of them are great, it's worth keeping an eye open at least once a month.
Great recommendation :) , I didn't knew that. I am gonna start checking from now on. thanks
Right now now there are books about Linux and/or developing video games.
For everyone who was interested in this I wrote another article with my favorite books about software development dev.to/patferraggi/5-books-every-d...
Thank you for this, its good to read a write up from a former accountant like i am,I have know about coding for over 2years now html,css,js,jquery and PHP to be specific without frameworks and I haven't earned a penny but still learning more everyday, hopefully I'll start earning
Hey man!, nice to meet another career changer. I don't know your personal story and don't want to guess but I would recommend you start right away, you re ready to start making money in this industry. If you need some guidance please DM on twitter and I will help you out :)
I just followed you on twitter please follow back
Love your piece most especially on meetUps
Hi! Thank you very much. Glad you like it, definitely something important, for me I didn't realize how important was until I moved to a different country.
I just started learning a month ago, and so far learning as a loner is difficult. But i intend to be a loner till the year end so when am at meetups from 2020 i will have a basic and technical Knows Hows when am talking to other enthusiast and beginners such as myself. Am Happy i read this article
I understand, just don't think you " need to be ready" to do it. Go ahead and just do it, you will find people with all levels of skills.
If you need some advice or something just DM on Twitter 😀
I need a lot of advice but don't want to be a burden unto anyone, i will be grateful if you indulge me.
No burden at all, glad to help. I hold one on one meetings with other developers to provide with advice or programming help. Just DM me and I will send you the link to book a meeting 😀
I want to slap anyone who says to work for more than 8h. Fu bro, you ruin lives for many people for changing expectations for working time. Programming community is the worst: teens, nerds and whoever, not normal people.
I just did all the things what this articles said in my beginning of my learning how to program and tried to relate that with real life stuff without ever reading an article like that.
Thanks for putting it here and writing it in a way that everyone can understand. It's hard to tell these in words.
Btw you had passion and dedication to do this much right? I had a lot so I can relate.
Thank you for the kind words. Definitely, I love writing software and I want to be better. But it took me a few years and few experiences to understand this things. As I said in the article, I made some mistakes here and there and did not always used my time correctly, but I learned from it and I am trying to be better.
Also I am getting a lot better on deliberate learning and using my time correctly, I will probably write an article about that in the upcoming weeks.
Thanks, I'm from Argentina also but I never had the courage to change my career. It was helpful to understand that It Is possible.
Sin duda es posible. Si pensás hacerlo avísame que te puedo dar algún que otro consejo. Mándame un msj en Twitter 😀
Glad you liked them 😀
Can't stress this enough.
Most informative piece. Worth being shared in computing classes too where kids may feel out of their depth.
Thank you very much, I give some free programming classes from time to time and I always mention this things. Hopefully they re not tired of listening ahha
Lol. Nah. The more the better.
I need the book.. I don't have 50$.. please help.. my email. firstname.lastname@example.org
Some comments may only be visible to logged-in visitors. Sign in to view all comments.