Launching Your Career in Tech: A Novice Developer’s Guide
I've gathered knowledge from experienced professionals and various sources, along with the experiences of colleagues who have achieved great results.
Join the DZone community and get the full member experience.
Join For FreeThe tech industry has a lot to offer, from good pay and remote work options to a warm welcome in the professional community. People of all ages are drawn to it. This article explores how to become a developer efficiently and move up in your career quickly. I've gathered knowledge from experienced professionals and various sources, along with the experiences of colleagues who have achieved great results. I won't promote specific courses, but you can easily find effective ones based on their descriptions.
For someone without a computer science background, starting to learn programming can be overwhelming. You'll encounter many unfamiliar terms and need to make decisions about specialization and programming languages. Choosing the right educational programs, courses, and creating a development plan is just the beginning. After you've mastered the basics, you'll need to dive into the technologies surrounding your chosen language, a challenge even experienced programmers face as it involves a lot of knowledge that can vary from project to project.
First, you need to decide if you want to focus on backend or frontend. If your background is more about communication than coding, you can consider roles like QA engineer, system or business analyst, or product manager. These jobs are in demand and offer competitive salaries.
Backend developers handle the server side of applications. They work with microservice architecture, databases, and DevOps practices. The most popular programming languages for this are Java, Kotlin, Python, Go, and C. Unlike other areas, backend development requires more knowledge of algorithms, a strong base in computer science, and the ability to manage complex logic.
Frontend development is divided into three categories: web (browser), Android, and iOS, each with its own set of languages and technologies. For web development, you'll need to learn JavaScript. For Android, it's Kotlin, and for iOS, it's Swift or Objective-C. You also need to know the layout (CSS) and how the client side works. You'll have to work closely with designers and businesses to ensure your work is user-friendly.
I chose backend development because I had limited experience with scripting and data analysis. I tried C# and Python but ended up with Java because it had the best and most affordable local-speaking courses. Job postings also confirmed this choice. I have an economics background and worked in various roles in the investment sector. I went from being a trader taking client calls to managing a portfolio. Along the way, I explored trading robots and trading systems, which required strong math skills and testing on big data.
At the same time, I tried various ways to learn programming. I started with online articles and books, but it was challenging. Most of the knowledge wasn't organized or easy to absorb. Learning programming languages is like learning a sport; you need practice. It doesn't matter how much you read or watch; only about 5-10% sticks in your long-term memory. You have to practice repeatedly. Athletes hone their skills through thousands of repetitions of simple exercises. To make progress, you need a lot of hands-on practice. After reading an important article or watching a video, take the time to practice the material.
Look for courses that emphasize hands-on learning. Knowledge should be presented in a structured way, starting from simple concepts. It should be engaging and explained in plain language. Detailed explanations from books can be too complex at this stage.
Once you've learned the basics of the language, you'll need to dive into its ecosystem. Learning a specific language is easier than understanding the extra technologies used in daily development. These technologies can change from project to project, so you need to focus on the basics. As a Java developer, I chose to study:
- Spring: A framework for creating modern web applications with connections to databases, caches, and queues. It also supports microservice architecture.
- Databases: Most server applications need data storage, and databases do that job. Start with relational databases. They are the most common and use SQL for queries.
- Build tools: Gradle and Maven are used to automate project build and manage dependencies.
- Authorization and authentication: Every application needs secure user access. You need to understand how different types of authorization work and try to implement at least one using Spring Security.
- GIT: A version control system for team development. Not all teams use it every day, but it's helpful to know how it works.
- IDE: Integrated Development Environments (IDEs) are essential for efficient coding. I recommend using IntelliJ IDEA because it has many features, supports various languages, and comes with many plugins. It's an industry standard, and the free version is enough for most tasks.
- Frontend technologies: In the past, many developers worked on both frontend and backend. Knowing the basics of JavaScript, CSS, HTML, and client-side development is still useful.
With consistent effort, you can learn a programming language and the required technologies in 9-12 months. Afterward, you can start your job search or consider joining a non-profit project where you'll work with testers, analysts, and front-end developers in conditions similar to real projects. Such an internship offers valuable experience and helps you understand the demands of the job. Don't be afraid; usually, these projects have mentors (experienced developers) to answer your questions and provide guidance. In a team of professionals, your progress will be much faster.
I'm a mentor for one of these projects, and I can say it's an excellent way to start your career. Most participants find jobs after a few months.
The knowledge you gain is enough to land your first job as a software engineer. To get noticed by companies, you need to create a good resume, make a LinkedIn profile, and connect with recruiters.
You can find many resume templates and tips online. Remember to adapt your resume to the local job market. In Europe, America, and Asia, formats and content can vary. Include only relevant information from your tech experience. Describe your achievements, even if they're not huge. Standard phrases like 'wrote code' or 'worked with analysts and testers' don't tell much about you. Try to explain what you've done and the results you've achieved, preferably with numbers.
List the technologies you know in your resume and specify the technologies you used for each project. Aim for mid-level developer positions. Your knowledge should be enough to start in a new role. Junior positions are fewer, and there's more competition.
Once your resume is ready, create a detailed LinkedIn profile based on it and connect with recruiters. Even if you don't ask for their help in finding a job, you'll get interview offers. The more you try, the more likely you are to find a job. In my experience, no one who reached this point failed. People without higher education and from different fields, like doctors, musicians, or cooks, have become programmers. It can work for you, too.
Opinions expressed by DZone contributors are their own.
Comments