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.
TECHNICALITY:Â
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:
- Variables
- DataTypes
- Keywords/Tokens
- Loops
- 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. -
Additional Frameworks
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 đ
PROJECTS SHOWCASE:
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.
PERSONAL SKILLS:
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:
-
Attitude:
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. -
Learning:
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! -
Problem Solving:
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. đ
You've shared some excellent material. I'm grateful for this post because it contains a lot of useful information. Thank you for sharing this piece of writing. Hire Experienced Website Developer Service in Noida