Getting Started as a Developer
If you're interested in getting involved in any of the different branches of software development fields, there are several things you should know beforehand. As
Liam Neeson might say, "You'll need a very particular set of skills." The sooner and more effectively you develop these skills, the more employable you'll be.
When working on developing your skills, the first thing to do is research. Find out what is growing the fastest. You don't want to invest a lot of time learning how to work a certain software only to have it become obsolete by the time you've mastered it.
Career Expectations for Developers
Technology changes at an unheard of and
unbelievable rate. You'll want to keep as up-to-date as possible because programming is an incredibly competitive field. To stay marketable, there are some things all developers are expected to know. The first of these concerns algorithms and data structures. You simply cannot be a developer in any field without understanding the science behind data structures and algorithms.
You'll also be expected to be very familiar with source controls, such as SVN and Git. Git, especially, is becoming incredibly popular in the developing field. Knowing how to operate text editors is also important. The most common of these is the NotePad app you've had on your Microsoft computer for years.
Knowing how to use Microsoft Excel is also expected of you. If you can't operate Excel efficiently, you're not likely going to be able to do much in the way of higher, complex coding. Plus, developers use Excel for data tracking and analysis on a near daily basis. You should be quite fluent in the use of this application before even
attempting to apply for programming jobs.
Knowledge of IDEs, Databases and SQL, Linux and UNIX is also required. By the way, if you're reading these terms and have never heard of half of them, you have a long way to go before doing any job hunting. Oftentimes, people think just because they know how to use HTML to
bold or
italicize their text, they're ready to be programmers. There's so much more to coding, programming and developing than that.
Furthermore, you need to know the basics of networking. This will be an integral part of your job. Today, the world is all about connecting and sharing resources. Knowing how to establish and connect to wi-fi, LANs and other linked computer networks is imperative.
Finally, you must have a wide range of programming and scripting languages under your belt. An expert in Java, Python, JavaScript and HTML might be able to find a decent job in the developing field. However, someone who knows all these languages
and more is going to be hired much quicker. There are so many languages and systems out there now; it's hard to keep up.
The people who are most sought after, though, are the people who
can keep up. If you're well-versed in three or four different languages, don't assume you're done learning. To stay at the top of your field, you'll need to be a lifetime learner, keeping up with the new programs and languages as they arise. Average expected salaries for developers around the globe can be found here.
Career Trajectory for Developers
Junior Developer
Starting out in a development field is just like starting at any other job. Unless you know people in high places or unless you're
exceptionally skilled, you'll start where everyone else starts: the bottom. For developers, this is a "junior developer."
Junior developers, also referred to as junior programmers, are the lowest rung on the developing ladder, but they're still a
very important rung. People can usually find jobs at this level as soon as they graduate from college or receive a certification from
developer bootcamps.
Junior developers are usually fairly skilled in their areas of expertise, but they don't have much or any real-world, on-the-job experience yet. Developers at this level should be able to write basic to mid-level scripts. They're also expected to have a foundational understanding of both databases and application services.
Understanding the ups-and-downs of apps, their popularity and their general lifespans is also a key component to a junior programmer's job. Junior developers are unexperienced; however, the position gives them plenty of time to gain real-world experience so they can start moving up the corporate ladder.
Software Developer
Employees in this position have had several years of real-world experience at the job. They've developed entire applications on their own over the years and have increased their knowledge of the developing world exponentially. Towards the end of their career as a software developer, they are often promoted to senior software developers, which is practically the same job, only they've been there long enough to claim "senior" and "mentoring" status.
Software and senior software developers should have all the same skills as junior developers and more. They've had years of experience. At this point, they should be able to write complex code, and their knowledge of app services, app lifespans and databases should be thorough and without many gaps.
This position usually leads people to higher-level jobs such as development team leader, but many people never move past senior software developer. This is not because they aren't capable; instead, they just don't
want to change jobs. They love the process of writing code, programming and developing apps and software and don't care for managing others.
Lead Developer or Development Team Leader
At this point in the proverbial ladder, there is a slight branch. Employees being promoted can go one of two ways. For people like those mentioned above who enjoy their jobs and have no interest in management, the lead developer position is the next logical step. Those wanting to become management material take the branch and become development team leaders.
Both jobs are very similar in their responsibilities and employer expectations, but there's one major difference. Lead developers are still working mainly on their own, while development team leaders take on additional responsibilities in leadership roles on development teams.
Both positions require employees to have many, many years of real-world, hands-on programming experience. Employees must also be
experts in their fields - not just great at their jobs, but
true experts. Both must also consistently demonstrate that they are able to generate concepts for new apps that solve complex problems. Not only must they be able to dream up these designs, they also have to be able to build the software.
Additionally, team leaders have other responsibilities. They'll be managing a whole team of software developers working on specific projects. These are often large-scale, expensive projects which take
a lot of time and work. A team leader is expected to have exceptional leadership and communication skills and must be somewhat of a "people person." Team leaders also have to make hard decisions about when to hire new people and fire those who aren't working out.
Upper Management
For people who don't want to manage other people, lead developer is about as high on the ladder as they are going to get. However, this isn't a bad thing. Lead developers have very rewarding jobs and are highly sought after by employers for their extraordinary skills. Furthermore, the median income for lead developers is
not low. In most states, it gets
very close to the $100,000 mark, in fact.
Some transition into a similar position known as lead software engineer. The jobs are similar, but the pay for the latter is a bit higher, usually topping the
$100,000 mark and moving into the $115,000 to $120,000 demographic instead.
For those wanting to go into management, though, there are a few different jobs they can move into after proving themselves as development team leaders. These positions include CTO (chief technical officer), vice president and/or director. These positions are collectively referred to as upper-management or senior management. Though the day-to-day activities of each of these may vary slightly, the overall responsibilities are similar.
In any of these positions, a senior manager will be required to make and execute executive-level decisions concerning the company. These can include the hiring and firing of mid-level management, setting the long-term goals of the company and developing a strategy to achieve them, deciding on initiatives to motivate employees and being responsible for the accountability of all departments.
They'll also directly supervise mid-level management and set goals and benchmarks for them to meet. Upper-management employees are high up on the corporate food-chain, second only to the CEO, board of directors and any higher-ranking senior managers.
Whether your goal is to hold down a steady job as a lead developer or go all the way to the top, the first step is getting started. Dreams and goals are great, as long as you put work and effort into them to make them realities. Otherwise, they're nothing more than fairytale wishes.
If you want to work in any of the developing fields, you
can do it. In fact, there's never been a better time
to do it. Do your research, find the right path for yourself. Start working hard and keep a portfolio of your work. If you put in the effort, you'll land that dream job, and after that, the sky's the limit! Or perhaps I should say, "The executive suite in a very tall building is the limit!"