loading...
Cover image for How to become an amazing software developer! Things I wish I knew when I started.

How to become an amazing software developer! Things I wish I knew when I started.

patferraggi profile image Patricio Ferraggi Updated on ・4 min read

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 has changed in the last 5 years, Microsoft went full open source, JavaScript became a serious language and not just a toy for websites, functional programming started it's comeback, tons of technologies have been given birth and died before our eyes.

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.

This one is related to the previous one. Sure, there’s a new JavaScript framework every day and people are struggling to catch up. Well, don’t try. It’s not possible nor worth it. Instead of focusing on frameworks, focus on architecture, system design, even software paradigms. Languages and frameworks are just tools we use to create products, they change all the time, the techniques we use to build software evolves at a much slower pace and can help you switch from one stack to another with ease.

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.

Discussion

pic
Editor guide
Collapse
chandragie profile image
chandragie

Good books tips! Thanks a lot.

Collapse
patferraggi profile image
Patricio Ferraggi Author

Thank you! I am writing another article specially on that subject. There is tons of amazing technical books out there.

Collapse
attkinsonjakob profile image
Jakob Attkinson

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.

Thread Thread
patferraggi profile image
Patricio Ferraggi Author

Great recommendation :) , I didn't knew that. I am gonna start checking from now on. thanks

Thread Thread
attkinsonjakob profile image
Jakob Attkinson

Right now now there are books about Linux and/or developing video games.

Collapse
patferraggi profile image
Patricio Ferraggi Author

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...

Collapse
abbeymaniak profile image
abbeymaniak

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

Collapse
patferraggi profile image
Patricio Ferraggi Author

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 :)

Collapse
abbeymaniak profile image
abbeymaniak

I just followed you on twitter please follow back

Collapse
marotheog profile image
Patrick

Love your piece most especially on meetUps

Collapse
patferraggi profile image
Patricio Ferraggi Author

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.

Collapse
marotheog profile image
Patrick

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

Thread Thread
patferraggi profile image
Patricio Ferraggi Author

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 😀

Thread Thread
marotheog profile image
Patrick

I need a lot of advice but don't want to be a burden unto anyone, i will be grateful if you indulge me.
Thank you

Thread Thread
patferraggi profile image
Patricio Ferraggi Author

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 😀

Collapse
delta456 profile image
Swastik Baranwal

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.

Collapse
patferraggi profile image
Patricio Ferraggi Author

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.

Collapse
moonbe77 profile image
Bernardo Munz

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.

Collapse
patferraggi profile image
Patricio Ferraggi Author

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 😀

Collapse
fultonbrowne profile image
Fulton Browne

Great tips

Collapse
patferraggi profile image
Patricio Ferraggi Author

Glad you liked them 😀

Collapse
gamerwalt profile image
Wale Banez Adewoyin

Can't stress this enough.

Collapse
skrish2017 profile image
Shashi

Most informative piece. Worth being shared in computing classes too where kids may feel out of their depth.

Collapse
patferraggi profile image
Patricio Ferraggi Author

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

Collapse
skrish2017 profile image
Shashi

Lol. Nah. The more the better.

Collapse
delightfulcodes profile image
Christian Ndu

I need the book.. I don't have 50$.. please help.. my email. christiannduh@gmail.com

Collapse
freddelfree profile image
FreddelFree

Hi Patricio, I wanted to ask you how you went about finding a job in Belgium. It is my dream to move to the Netherlands or Belgium and really start my life there but I am finding it very difficult to find a dev job. I have 2.5 years of work experience and am currently employed but on a web project made from scratch not using any framework. Do you just keep applying to jobs on LinkedIn until you get lucky? What was your strategy? Thank you for any advice.

Collapse
patferraggi profile image
Patricio Ferraggi Author

Hey! Do you want to DM on Twitter? We can have a call or something and give you some extra information, maybe we can even review your CV and help you prepare better for the interview process here.

Collapse
abbeymaniak profile image
abbeymaniak

Please can we DM on Twitter too, i'm having the same problem @abbeymanic thank you

Thread Thread
patferraggi profile image
Patricio Ferraggi Author

Of course just DM on twitter and I we will arrange a call or something and work this through

Collapse
freddelfree profile image
FreddelFree

Wow! Thank you so much. My twitter name is @freddelfree .