If you’re looking around the internet trying to figure out how to profile your learning before applying for the first job, or if you’re just thinking about planning your next 5 years before you start working, let me cover some of the biggest misconceptions around the requirements to get into the software industry.
Question No. 1: Do i need a bachelor’s degree in computer science or related degree?
The answer is NO, you do not need a 4+ years of formal education like B.tech or BCA/MCA. in good old days It was required when there were no bootcamps, and the learning resources were mainly hacker e-magazines (which were TXT files with some ASCII art thrown in there). The situation now is completely different, however, anyone looking to start learning how to code has the world’s knowledge at their disposal. This is no exaggeration, there are free online resources such as Youtube or freeCodeCamp.org which have everything you need to go from zero to workable. And while it is true that not everyone can learn just by absorbing knowledge, you also
have other options: paid courses in places like Udemy or Skillshare, which if you’re able to invest will cost a lot less than a university degree and will give you access to classrooms, Q&A sessions with teachers and contacts of other students going through the same problems you are. There you can get the actual practical knowledge required to start coding, and while it is true that many people value the mention of a college degree as part of your resume, a lot of companies are starting to pay less attention to that single bullet point. Granted, that affirmation might be less true in some countries than others, but it’s also true that ours is a very international profession in the sense that we can work for companies anywhere in the world, and when that starts happening,the college degree starts weighing less and less as time goes by.
Take away :
Your college degree is not sufficient alone to get a software job.You need to have practical knowledge of what to know. Understanding things from a bootcamp or online education will not cover everything you need to know, but that’s not what we’re after here. We’re focusing on the practical aspect of the profession, so you can start learning by doing.
Question No. 2: Do i need to Know the software development life-cycle
A typical software project has to go through a development life-cycle:
1. You first need to do a requirement analysis to understand exactly what you need to do.
2. Then move on to planning your project to understand when to do those things and how much time you’ll need.
3. Designing its architecture comes third. Once you know the “what” and the “when”, you have to start thinking about the “how”, and the architecture will give you the blueprints for that.
4. Only then, you can start writing code. This is the section where most developers tend to focus on, but as you can see, it’s not the first thing you’d normally do.
5. Testing your code and your product comes next, understanding if the previous step produced the right output is a must-do before moving on to the next one.
6. Deploying your product. In other words, giving it to users so they can start testing it and giving you feedback. Because it’s a cycle, you’d take that feedback and normally start all over again, but you get the idea.
Now, if you’ve never worked on a software project before then you’ve never had to apply most of these concepts, and that’s perfectly fine. You don’t need to understand any of that to get your first job.
Yes, they will be part of your tasks, and you’ll be applying this knowledge every day. But turning it into an entry-level requirement for the role of Jr. dev is like asking an acting surgeon to lead their first surgery. Eventually, they’ll be able to do it and they’ve probably read about it, but you don’t want them doing it on day one.
And that is the same for you as a developer, you should not be expected to understand what all these steps really mean on day one, you won’t be in charge of doing it all anyway. You’ll learn about it because you’ll be part of the process.
Question No. 3 : Do i need to have a math, physics, or similar degree for understanding programming?
I’m guilty of believing this one myself back when I started, but then again, I blame college, they were teaching me calculus and algebra at the same time I was learning to code. Was that a mistake? In the long run, no, it wasn’t, but it did nothing to help me get my first job as a developer.
Math, physics, or any similar sciences are not going to help you understand programming. Some of them require you to understand abstract concepts (such as infinity, or the number PI), which can act as practice when you need to create mental models of an algorithm you’re trying to write.
That is where I think the misconception comes from, they all require you to flex your abstract thinking muscles.
However, you won’t be solving hard math problems or implementing difficult physics simulations on your first job, and even if you happen to find yourself in such a conundrum, there is a big chance you’ll be using someone else’s library.
So should you need to get a math degree before making the jump to computer science or a Jr. dev role? No, not at all.
The Role of DataScientist is not exception While the role of a Jr. Data Scientist might require you to, in fact, have one of those degrees, the requirement is not for understanding how to code but rather, how to model the problems you’re trying to solve.
Eventually, you might find shared concepts between programming and these other sciences (such as sets in many programming languages), or you might find yourself implementing concepts from other realms into your code (such as implementing the concept of gravity on a platformer game), but none of this is something that requires a full degree before even starting to code.
Question No. 4 : Do I need to get certifications to get a job?
Certifications are tempting because they have that “not-as-long-as-formal-education-but-stilluseful” kind of vibe. And they do have their merit, but they’re not a hard requirement to get a developer job.
Listing certifications on your Jr. dev resume shows you care about your learning and that you care about improving your skills. This is indeed a good thing. But it’s not a requirement. You won’t find job listings asking for particular certifications from a
Jr. developer, instead, they’ll be looking for knowledge about a group of technology. And this is easier to achieve by following online courses or bootcamps.
What I’m saying here is: if you have to choose between investing in a certification or an online course, go for the latter, get a broader education before you start narrowing down on a particular subject.
Question No. 5 : is it required to be able to work in a fast-paced environment?
I personally love this requirement. You can find it on many job listings as well as basic software development skillsets. Truth is, this one is so generic that it can really mean anything.
What does “fast-paced” even mean here? That term can mean anything honestly, but I’m assuming (because that is what anyone reading in our context would do), it means you have to be interested in working inside an industry that changes a lot. And by that, I mean changes in technology, working methodologies, project focus, or even projects themselves.
That probably sounds scary, especially for someone who’s not even working yet. But I can confirm that you can be a software developer and still hate “fast-paced” environments. Not everyone likes changing technologies, nor even projects. You don’t have to either.
Granted, startups normally work that way, because they have to. They normally need to grow fast and adapt to changes.
Contractors work like that too. There are companies out there that hire you to be part of someone else’s team for the duration of a project, and when that is done, you move on to the next client.
Both scenarios are great, and if you find that interesting please go ahead and apply, chances are you’ll enjoy your work there.
But there are other companies, the ones that have been working for years now on their product(s) that tend to have a more stable environment. In fact, the perfect example of that is banks (and I should know, I’ve worked for some of them in the past as an external contractor), they have so much data from so many clients, that making a change on their tech stack is quite hard, and honestly, scary for them.
There is no right choice here, most of the time you don’t get to pick your first company, the fact that they accept your lack of experience will be the deciding factor. However, keep in mind that just because a section of our industry is “fast-paced” doesn’t mean you need to like it or to be looking for that.
Question No. 6 : Do I need to have a good experience to land my first job?
Asking for experience from a Jr. dev is not only counterintuitive, it’s just plain silly. And I’ve been there, I know how it feels when you read a job listing asking for Jr devs with experience in different technologies. You’re sitting there, reading the listing trying to find a job so you can get the actual experience. It’s like the egg and chicken problem.
My advice here is to ignore that part of the listing, it makes no sense after all. Just apply if you feel comfortable with some of the other requirements or if you feel like you can pick them up quickly.
The kicker is: if you’re applying for the job and are worried about the experience part, you can showcase other types of experience:
- If you’ve done some kind of online course, you can list it here.
- If you have one or more personal projects published somewhere (i.e on Github, or somewhere else), you definitely want to publish it here
- If you’ve worked as a volunteer on something remotely related to IT, list it here.
Careful though, I’m not saying this is a must-do, requiring experience for an entry-level position makes no sense, and it should not be a prerequisite. However, if you do want to address that point on your application, listing some of the above items is definitely better than saying “none”.
I hope you enjoyed this article and now are more comfortable before jumping into an interesting IT-Career. Keep Learning with mycslab.