What is this about? π₯±
In my opinion, the point of writing a blog is to document your journey and share it with other people so hopefully someone finds the information useful.
Having that said, I have decided to share my experience and what I have learned when it comes to getting a first software developer job.
I have been through the process three times already so while everything is still relatively fresh and quite a few people asked me for advice on Twitter, I decided to document it before it all evaporates into the void.
This is definitely going to be a series of blog posts with no specific order where I will try to extract the most important information as it comes to me. π€·ββοΈ
Who is this for?
Anyone who wants to make a career change to IT, is graduating from college, is struggling to get a first job as a programmer or just wants to give programming a try.
Topics that will be covered
These are some of the topics that I will definitely cover but might add more if I remember something that is important as well:
- What are the requirements for becoming a programmer
- How to write a no bullshit CV/Resume that will increase your chances of getting hired
- What programming language / framework to start with
- Where to apply for your first job and which ones to consider
- How to build an effective portfolio website
- What projects to build and how
- Creating an effective GitHub profile
- How much experience is needed to start applying to jobs
- When to apply to an Internship vs Real Developer role
- Is your code good enough
- What to be ready for while trying to get your first programming role
- Mindset and motivation
The first topic is covered in this post as the title says so let's start! π¦Ύ
What are the REAL Requirements for Becoming a Programmer?
Do you need someone to tell you if you are smart enough or do you have what it takes to become a programmer?
Let me tell you this: Programming is not for anyone and it's not enough if you can just install Windows on your laptop. It's only for extremely talented people with IQ over 200.
Anxiety kicks in?
Don't worry, I'm just kidding.
Let's put it this way. If you can read and comprehend what I have written up to this point then you have everything that it takes to become a programmer. You maybe won't be a great one but it's definitely enough to get a job.
Physical requirements βοΈ
You did some googling or found this post buried deep down in the #TechTwitter history. That means you have enough interest.
Interest βοΈ
Your friend who is incredibly smart is a software engineer and there is no way that you can be that good?
Actually, you can.
I actually know a few people who are generally not that intelligent but are still working as developers.
If it makes it any easier for you, I had the WORST grades in informatics in elementary school and in programming in college. At least get school out of the way because it's not a valid measure for anything.
So what's the thing that separates people who can and who cannot become programmers?
Well, the important things are exactly those two words: CAN and CANNOT.
Just pick one word and fill in the sentence below to find out the answer.
I ___________ become a programmer.
Got it?
It's REALLY a matter of decision. Do you want to become a programmer?
Why it is a matter of a decision?
Because if you don't decide firmly, you will quit somewhere along the road. Just make a decision with yourself, and even better write it somewhere, and whenever you think about quitting (which will happen a lot) just remind yourself that you have decided and that there is no way back.
If you are starting from zero, don't expect a role in the next 1-2 years and be ready to dedicate A LOT of time to learn everything that is necessary to get the job. If you get it earlier than that then even better!
Not a lot of people can sacrifice that much time and be that patient and that's why programming is labeled as "hard".
It's not hard because you have to study some out of this world science, complex algorithms or math formulas - it's hard because it requires TIME and PATIENCE.
So basically you have all the "skills" that you need. It is only the question if you are ready to throw yourself into the fire?
If you were looking for an actual list of requirements in a video game style then here you have it:
Requirements for becoming a software engineer:
- Having a normal functioning brain and being able to type
- Being ready to not being able to get a job even after learning every day for a year
- Basic English language knowledge
- Being in peace with the fact that learning will NEVER end
- Being in peace with the fact that you will fail a lot
- Being comfortable with feeling stupid at times
- Being ready to work on your temper and impulsive reacting
- Being in front of a computer every day
- Being ready to code every day
- Being ready to learn the boring stuff so you can enjoy building fun stuff later
- Being ready to deal with difficult people
- Being ready to read boring or poorly written documentation
- Decreased social life at times
- Being comfortable with dreaming code (literally)
- Being able to think when exhausted at times
- Being able to think under pressure
And last but not least: being ready to help everyone alive with their printers or failing internet connections. (funny but true, you will see)
If you can sign up for all of these points above then there is nothing else I want to tell you.
You have it all and are ready to start. βοΈβοΈβοΈ
All I can tell you is good luck, DON'T QUIT and you will get your job I'm sure of that!π
If there is a topic that you want me to cover please let me know in the comments and I will gladly add it to my list.
Top comments (12)
Such a great and awesome post for those who want to take their career start from programming. I am appreciating your effort for creating this post.
Regards: Wordfeud helper.
Thank you very much! Really means a lot.
Some good points haha, I pretty much agree with them all.
I think a lot of what gives the impression of software development being difficult is its absolute, deterministic nature. That is, things either work or they don't. There usually isn't much area in-between.
If you're new you're going to be on the receiving end of "not working" a lot more, and that can be incredibly demoralizing causing most people to give up. So in this sense maybe it's a filter for the most determined/dogged/persistent moreso than the most intelligent.
Very well said. Agreed!
I wanted to be a programmer but I ended up fixing printers.
great blog thnx :)
if I were asked that question, I'd answer with "grit". Personally, I find that it's the most necessary trait to have, given how much frustration and anxiety you would face along the way.
Great article Antonio, keep it up!
Looking to make a career shift to tech. This is exactly the kind of series I need π
Thanks and keep up the content!
Yeah it's true and one thing at a time!
Yup, just give yourself time!
Amazing points, "matter of a decision" reminds me of how indecision slowly turn me into something Non-programmer. Thanks!
Reminds me of the Teach Yourself Programming in Ten Years by Peter Norvig.
Never heard about it - thank you for sharing :)