Software industry is expanding for over 10 years now and software engineers are in high demand. New startups emerge every day and hire developers to build their new app. But the new standards to get hired have emerged as well. For one to be qualified as a software engineer there are some criteria to be checked first.
- Good knowledge of at least one backend programming language. PHP, Java, C#, Ruby, Python, Nodejs just to name a few. If you understand the concepts of one programming language really well, then you can easily learn a new one.
- Good knowledge of HTML, CSS. You cant qualify if you can’t create a website with basic styling.
- Database management with SQL. Pretty much every app has to give and get data from a database so it’s mandatory to be able to handle databases.
- Basic Git knowledge. Git has become an essential tool for developers and not only for those that work with teams. It’s super handy even when doing side projects alone. Pretty much all the companies use it and no matter how good you know every language of the world you can’t help unless you understand the basic of git.
- Combination of all the above. Ok you need to understand how to add functionality to backend, then how to send data to frontend and of course style them nicely. After that you have to commit your code to your teams repository. That’s your typical day more or less. So the knowledge to combine all the above skills are essential and mandatory.
All the above are the super mandatory – i can’t live without it – things. But sadly, alone they are not enough.
Good to know things:
- Frameworks. Pretty much all the programming languages have frameworks to help us make our applications faster, more secure and easier. It would be very helpful to know one framework because using a framework and plain coding with a programming language is completely different.
- Basic knowledge of software architecture and design. It would be really helpful when trying to land you first job to have a basing understanding of what are models, templates, services, helpers and controllers. It really depends on the framework you are using and the design you build your application but in most cases you will have to use all these things.
- Basic knowledge of software methodology. It does not matter how good you are -when two people at the same team work at the same feature- the company looses money. Learn the basics of one software methodology like agile and the general flow of how things are done. You make a feature, someone reviews your code, testers test it and a lot of stuff happen before your code reaches the customer.
- Teamwork. Obviously being a team player is very important part of your career. First you will learn more by a team that trusts you and second at the startup world teams change all the time so you must be able to adapt to different teams when needs be.
- Communication. You must be able to properly communicate with your team. Communication is often underrated as skill but there are tons of examples of waste of time and money cause of bad communication.
- Time management. Well time management is important skill for every career in the world and there is no exception here.
Degrees to have:
- Nothing at all. You don’t need anything. If you go to an interview and you show them you have build things and know how to code the correct way then degrees are useless.
Thank you for your time folks and sorry for the short article 🙂