Don't Be a Junior Developer
Anwar Winter, CSPO, CSM
Funding Catalyst | Venture Capital Specialist | Investor | Ex- Full Stack Software Engineer
The title “Junior Developer” is often plastered on resumes, emails, and LinkedIn profiles by candidates desperate to get hired. And unfortunately, this is a mistake. By branding yourself as “junior,” you label your abilities as inferior. While it's OK to be a junior developer, I highly encourage you to be on a path of continual improvement so that you can add more value to your team! If you're discouraged by the title of this article because you've invested a lot of your time to become a junior developer, don't be, just read on. Please understand that my life's theme is the Pokémon song. "I want to be the very best like no one ever was," and I only want to encourage others to be the best version of themselves.
So, if you’re currently a junior developer, this is your sign to level up. Don’t settle for your current title. Gain skills that’ll take you from junior to intermediate to senior. Once you have these skills, you’ll make yourself a more desirable hire, HAVE MORE IMPACT, offer value to your team immediately, and earn a higher salary. Oftentimes, the difference between being a person of higher value and gaining a high salary is the decisions and investments you make today, so invest more in yourself because you are the canvas, and my guide is simply motivation to help you make yourself into a beautiful work of art.
Are You a Junior Developer???
If you started with the title “Junior Developer,” you’ll probably feel like one for some time. For many, even after they’ve gained the skills needed to be considered an Intermediate or Senior Developer, they still hesitate to call themselves such. Why? Because you’ll always feel like someone else is smarter than you or better at your job. Almost every developer feels some sense of imposter syndrome.
If you’re struggling with this, then ask yourself the following set of questions:
· Can I explain how the internet works to my family and friends?
· Can I explain how a computer works to my family and friends?
· Can I explain how websites work to my family and friends?
· Do I have a basic understanding of HTML, CSS, and JavaScript?
· Can I build my own websites?
· Do I know a little bit of React?
· Have I built projects on my own Github?
· Am I comfortable putting websites and apps online?
If you’ve answered “yes,” to these questions, then you are not a Junior Developer. If you’re searching for a job now, and you’re considering taking a Junior Developer role, I’d recommend against it. If you’re able to invest in learning the skills now to get a better job in the future, go for it. Don’t take a job where you’ll have to work for years before you gain the skills and earn the salary of an Intermediate or Senior Developer.
What Skills Do I Need to Transcend Junior Developer?
Are you ready to stand out and above your Junior Developer peers? Gain the following skills and see an instant difference in how you’re received.
1. Explore SSH
This includes symmetric and asymmetric encryption and SSH key management.
2. Learn advanced JavaScript
This includes the common algorithms, data structures, and design patterns. You should also know the difference between OOP and Functional Programming as well as the advantages and disadvantages of each. You should learn how to optimize code and how modules work.
3. Improve web and network performance
To do this, learn how to improve delivery and minimizing files and images. You can also learn about pre-fetching resources, code-splitting, CDNs, compression, and caching.
4. Learn about progressive web apps
Learn how to build a progressive web app as well as the key things that all you to create such an app (HTTPS, app manifest, and service workers).
5. Master popular front-end library and how to manage complex state
Learn a popular front-end library framework like React, Vue, or Angular. You should also learn the principles of Redux, how to manage state, and how to think about data flow through your app. You should also learn about Event Sourcing and CORS, which inspired Redux.
6. Explore current testing landscapes and tools you can use
To do this, learn about the different types of tests (unit tests, integration tests, end to end testing) as well as how to write good tests. Make note of TDD and BDD, asynchronous tests, snapshot testing, and how to use mocks, stubs, and spies.
7. Learn about TypeScript and its benefits
Learn when and when not to use TypeScript, how to use the TypeScript Compiler, and how to write in TypeScript.
8. Learn about client-side rendering vs. server-side rendering
Determine when you should use Client-Side Rendering and when you should use Server-Side Rendering.
9. Understand how to secure your applications
Learn how to avoid XSS or CSRF and the most common security vulnerabilities (i.e. Injections). Learn how to use HTTPS to make the web safer. Investigate Access Control, SQL Injections, Command Execution, etc. Practice protecting against the most common attacks.
10. Learn about Docker and containers
Learn why containers are different than Virtual Machines. Learn how to create and use Docker containers. Explore using Docker Compose to orchestrate services and how it can make developers’ lives easier.
11. Explore different types of databases
Investigate using relational and non-relational databases and when it’s better to use one than the other.
12. Learn how to manage sign-in and sessions in your app
Explore managing sensitive user information like passwords and the difference between cookie-based authentication and token-based authentication.
13. Learn about infrastructure as a service and platform as a service
Browse some of the most common offerings by the big players like AWS, GCP, Azure, and IBM Cloud. Learn about functions as a service like AWS Lambda and using Serverless. Learn about serverless architecture.
14. Explore continuous integration, delivery, and deployment
This can help you manage large projects smoothly and help you work in teams.
Final thoughts
Are you feeling intimidated? You may not be able to learn these skills overnight, but you can keep them on your radar to ensure you’re making progress. Developers should always be learning as technologies change. Get yourself on the path to Senior Developer, and you’ll notice the immediate benefits of leveling up your skills.
DevOps | DevSecOps | Software Engineer
3 年Awesome write-up Anwar. I couldn't agree with you more, that the clause or term "Junior" is quite demeaning to one's knowledge/skill level. Hence a high probability of "short-selling" yourself to potential employers. You are likely to discover that many senior developers may not necessarily know or have some of the trending skills you have acquired and are bringing on board. This makes you a highly valued team member from day 1 on the job. Besides, no manager or team-lead will give you the most difficult tasks or priority code to write within your first few days/weeks on the job. Keep your head up, be confident about what you know, and work on the things you do not know to keep adding value to yourself. No knowledge is a waste, sooner or later, it will pay off. Thanks for sharing Anwar Winter, CSPO, CSM.
Funding Catalyst | Venture Capital Specialist | Investor | Ex- Full Stack Software Engineer
3 年Link to article https://www.dhirubhai.net/pulse/dont-junior-developer-anwar-winter-cspo-csm