When I first started applying for Java Software Developer, I was a ball of nerves (meaning I was nervous 😂), I was anxious and I was often comparing myself with the real world, pro “Software Engineers”. I had some skills, done some projects, had a good grasp of fundamentals but no matter how much I kept learning, I somehow had a deep rooted voice that said, “I am not ready yet”, maybe one more mini project later would be a good time for applying. Looking back at it, the main reason why I was skeptical, maybe a little scared to step out was because I was often thinking I have no idea how to work in a “Real Project”, how to actually work. or do I even know enough to apply?
So when I finally got my first job, what do you think happened? Well, not to toot my own horn, but I was told I was overqualified, it may also be because I had applied for an unpaid internship 😂
I had an eye opening moment that day, and several other eye opening moments down the line, and many more eye opening moments later, here I am after being on both sides of the table and now with all of my eyes open, telling you about things I’ve learned from my journey so that the journey may be a little shorter for you, or to just give you a little push to get you started! So enough with my mind blowing story, let’s get down to business
I’ve divided further content into three parts, 1) Technicality, 2) showcase, and 3) personal skills, and yes, like the greatest of the mystery writers, I’ve too jotted down the best at the last. I’ll talk about if you are ready or not, how to take the first step, and your approach to the interview and to work if you’re selected. This is pretty long, there’s no TLDR; , if you don’t know what TLDR means, welcome to the developer world kid.
Since you are applying for a software developer position, I expect you to have done at least a few group or solo projects, nothing major, perhaps a tasks app, or maybe a tini tiny inventory management or a website or anything as such, and also have some technical knowledge about whatever it is that you are applying for. If not, no need to read this further, go read some programming books and do some projects for GOD SAKES! You’re applying to a company not a college. Here’s Ice Cube mad at you:
Okay, if you’re still here, you probably have some technical knowledge about a programming language, and maybe have done some projects. That’s good, that’s all that’s need to get started.
A most common fear that most young graduates have, that I had too is am I technically ready?
And if you have done 4 years worth of graduation, or a programming course or self study to finish a course, then you probably are. If you are still not confident, and you are unsure whether you can apply or not, just answer the following question and you’ll know where you stand.
Am I ready to apply for a beginner position as a software developer?
Notice the word “beginner” above, if you are applying for a mid-level or senior position, then I don’t know why you’re even reading this unless you are a fan or a stalker, in that case, go ahead.
|Popular Programming Languages|
Knowledge about the basics of programming languages
Are you familiar with the following concepts:
- Condition Statements
- Syntax of your language of interest.
If you are familiar with everything above! great, you are almost there. If you are fuzzy on some of the above concepts, then you need to work on them, maybe do a quick recap, or a small project. But if you are serious about becoming a software developer, or a website developer. I ask you to please, study those things, you aren’t going anywhere without being familiar with the above concepts.
And if you already think this is easy, then very good, it isn’t hard is it? So grow your confidence a little, you already know more than 50.21% of the beginner candidates I’ve faced in interviews.
Even though knowledge about the basic principles of programming is important, rarely in any real world projects you don’t use frameworks. If you are a PHP developer, have you worked with CI, or Laravel or Yii. If you’re into python, then perhaps Django? Or Swing, Spring in case of Java.
The bottom line is that the core principles are extremely important, but frameworks is what you use to build projects and it’s where you use your core principles. I definitely recommend you to try out some frameworks of your language of interest before you apply, it’s definitely a big plus and if I come across a candidate with good understanding of a framework, then I’m definitely marking him/her higher on my candidate list.
If you are quite comfortable with the concepts described in 1 above or you have worked with some framework as described in 2, then you are already ahead of the crowd. Perhaps being a little more confidence is all you need to get started as a software developer, and we’ll get to that part 😉
As the age old saying goes, “if you got it, flaunt it”. This is where you show the work you’ve done, do not think that a project is not good enough, or it is not worth showing. Remember, you are applying as a beginner/junior developer, no one expects you to have developed an out of the world application. If you have, please feel free to contact me about it! 😂
Not quite like the meme above, add a link to your public github projects in your CV, mention your projects under a projects section in your CV maybe, and do not be afraid to talk about what you did in the project, the problems you faced and how you solved those problems if the conversation steers in that direction. Whenever I am talking to a candidate, I want to know how he/she faces a problem, how well they are at finding solution and how they react under pressure, because mark my words, no matter how much experienced you are you’ll always run into problems, you’ll always have bugs and you’ll definitely face pressure. The difference between an experienced software developer and a beginner is that the “experienced one” has already faced the problems you’re facing and is now facing new ones. The bottom line being, you will never run short of problems, don’t run short of patience, and desire to find solutions.
As I had mentioned in the beginning, “best at the last”, you might be confused as to why this even matters if you have good technical skills. But always remember this “skills can be taught, but not character”. If a company places skills above culture or character, you need to rethink your choice of company, if not, well you don’t need to read the rest.
So if you decided to be a human and stay on, the following is what I place above the rest whenever interviewing a candidate:
Not to turn into a preacher, but this is very important as this is going to define how you live your life, not just your work. Your attitude towards people, towards problems, towards your team. You’ve might have heard or studied, positive attracts negative, but in the voice of Chandler Bing, “could this be any more wrong” in real life. If a hiring manager thinks seeing your face everyday to work if going to lower the morale of other workers than to improve it, rest assured you are not joining that company.
Remember, going far is a team work, you cannot be working on a project in a team and be saying things like “It’s not my problem, I’m headed home” after doing your part of work, I’m not saying stay and just linger on, sometimes there is really nothing you can do if it doesn’t fall under your area of work, but it’s a team, if someone’s work is not complete, the product is not going live, a better thing to say would be “Good luck, let me know if I can be of any help”.
You will be asked questions like can you work in a team? or what problems have you faced while working in a team? You can fake and lie in an interview, but when the time comes, it’s visible and your senior is going to notice, and you are going to be in trouble, so if you cannot work in a team, cannot ask for help and offer help, this is a big red sign for any hiring manager. I suggest you watch some team work videos, read some teamwork books. You can go fast if you work alone, but you can only go far if you have a good team. History is the case study for this.
In programming, you never know everything, you always need to keep learning, updating yourself to keep up with the industry, the good folks are always working and coming up with new things. Just as an example, when I started out developing for Android, we used to develop in Eclipse, oh the good old days… Then came along Android Studio, the migration was painful! But if I didn’t do it, I’d be left behind. Just how many developers still use Eclipse for Android Development? If you’re an Android developer, you might not be aware of those times.
So whenever I interview a candidate, I need to know that they are docile, open to learning, and can self learn. There is no one who is going to guide you each and every step of the way. If you get help, then be very grateful, if you don’t, then that’s what you signed up for. If you are not good with self learning, then please develop your learning skills, maybe learn a programming language or framework, Google, Youtube or read books, do whatever is necessary, but keep LEARNING!
Now this is the last of the last, yes, I’m implying this is the most important thing 😄
When I was starting out my journey as a developer, I used to think great developers don’t need to Google this much, they can code largely without having trouble or without running into problems. Let me just clear that up for you. No. Never. Not. In all my years of developing, I have never come across any software developer who doesn’t run into problem, or doesn’t Google frequently, if a software developer is not Googling, then rest assured, he/she is not doing much. Sometimes I even find myself watching my own old tutorials, so what I’m getting at is, as long as you choose to remain a software developer, you’ll always have problems.
I’ve seen many younger developer who are just starting out just getting stuck at a problem for a few minutes or hours and giving up and start doing something else. If I can solve a problem in minutes, then I don’t even consider that a problem. Hours and days are normal amount of time to solve a problem, so no need to lose hope if you cannot solve a problem. If not Google, then try DuckDuckGo, Bing or whatever else, my point being, keep on trying.
More often than not, I see developers being stuck on a problem and then giving up far too easily, those are not the type of people I want in my team.
If during an interview you face situation questioning you problem solving skills, never say I cannot do this or I don’t know, rather say “I will need some more time to find a solution for this”.
This is not a “How to nail an interview”, so we’ll not go more into what to say and how to answer questions in an interview, if you guys want it, let me know and I’ll work on it. But for now this is it.
So we are towards the end of this topic for now, and if you didn’t take anything yet from this, just keep this in your mind and you’ll be fine:
Everyone starts somewhere, so no need to be alarmed by your lack of experience, but be confident in the basic programming components we’ve discussed above in technicality, grow your learning skills, programming skills and team work capability, if you suck at those then you will likely not be hired even if you have fairly good technical skills. Don’t be afraid to ask questions and to help out and show a positive and docile attitude, if you are not naturally that, then build those qualities up, those are essential to grow as a software developer.
I hope I have helped you clear some doubts and give you a little information about what you need to get started in your developer journey. If you have any questions or your need help, let me know, I’ll do what I can. 😉