From the desk of a brilliant weirdo #1:
âThe difference between a software developer and a software engineer is the same as the difference between big and large.ââââUnknown.
What youâre about to read mostly revolves around my personal thoughts, deductions, and offbeat imagination.
If you have different sentiments, add them in the comment section and letâs dispute!
So, todayâs topicâŠ
Software Developers vs Software Engineers
Personally, it pisses me off. Every time I see an article on this topic, my emotional bank account gets robbed. They are all about SEO. Inappropriate keywords squeezed into tiny sentences just to get better rankings. No intent to entertain or enlighten the reader whatsoever. Sometimes, such articles can even be outright wrong.
And even though the purpose of this blog post can be to generate traffic, I tried to make it more of a meaningful rant than a lifeless academic essay.
So, letâs see how you feel by the time you are done reading this paper.
Without further ado:
Since there are no proper interpretations of both terms, a lot of people use them interchangeably.
However, some companies consider these terms as job titles.
The general âprogrammer-developer-engineerâ trend goes along the lines of:
- A programmer is someone who knows how to code, understands algorithms and can follow instructions. Yet, it doesnât go further in regard to responsibilities.
- A developer is somewhat superior to the programmer. In addition to coding, they also do design, architecture, and technical documentation of the software component they are building. They might be referred to as leaders, but not necessarily.
- Finally, an engineer implies that you are the real deal. Youâve graduated with a degree, have some tech knowledge, and preferably experience⊠and you are capable of designing a software system (a combination of software components your peons, the programmers, have built). Youâre like an overseer. You can see the bigger picture. And itâs your responsibility to clearly explain that âpictureâ to your team.
âTypically, software engineers will play the role of team leaders, being at the front in dealing with clients and taking on different projects for the team working at the back.ââââTalha Waseem, Tech Content Editor at InvoZone.
By the way, it can also depend on the country you are based in. For example, in France, you can call yourself an engineer only if you have graduated from an engineering school thatâs been recognized by the Commission des Titres dâIngĂ©nieur.
âIn Canada, the term âEngineerâ is restricted to those who are certified by a provincial association. So, not everyone can call themselves an âengineerâ in Canada.ââââBriana Brownell, Founder and CEO at PureStrategy.
Others speculate that these might just be terms made with the purpose of marketing. Perhaps companies want their employment lists and job descriptions to look cool and attract more applicants. Brillante!
Alright, letâs dive deep.
Here are someâŠ
Key differences between a software engineer and developer
According to Felim OâDonnell, director of operations at Liberty IT, developers work specifically on delivering software within tight parameters. They donât need to see the whole picture. Developers only need to focus on the task thatâs been assigned to them by the software engineers.
On the other hand, OâDonnell says, a software engineer is someone who takes a 50,000-foot view over the developed software. They communicate with other stakeholders to clarify the project requirements and are constantly looking for ways to optimize the work process. They often ask themselvesââââIs there a better way to do this?â
So basically what makes all the difference between a developer and an engineer is the mindset with which they approach their job and their appetite to learn.
âUnless youâre working at a place like Google and chasing that prestigious promotion from âSoftware Engineer Level 4â to âSoftware Engineer Level 5â, which version of software engineering title someone uses mostly just indicates how they think about the role themselves.ââââJustin Pincar Founder & CTO of Achievable.
Honestly, being called a software engineer or a developer is fine. Whatâs not fine is being called a programmer. The folks that call us programmers are typically small-minded Luddites devoid of any IT knowledge. Disgusting. How dare theyâŠ
I mean, you spend all those years getting your CS degree, working as an elite software engineer (or developer), only to end up being called a simple âprogrammer.â
Câmon, programming was something I did in my room at 03:00 am at the age of 15.
âSoftware engineeringâ is my career, chap. Kinda like calling an accountant a tax preparer or your dad by his first name.
Oh, and by the way, you are not a real software developer if you donât work on Linux and have a rainbow light mechanical keyboard from Razer.
âWhy do I need that?ââââI hear you scream.
Well, the look of your work setup defines the quality of your work. If you donât know, now you know.
âSir, this is Wendyâs.â
I know, I know.
I digress.
Letâs look at the factsâŠ
What the heck is a software engineer?
By definition, an engineer is a person who designs, builds, or maintains engines, machines, or structures.
Wikipedia describes the term âsoftware engineerâ as someone who applies the principles of software engineering, to the design, development, maintenance, testing, and evaluation of computer software.
Jack of all trades.
âI prefer to call myself a software engineer because it sounds more solid and professional.ââââGene Mal, CTO at Static Jobs
Alright, so what is a software developer then?
By definition, a software developer is someone that develops somethingâââfair enough.
What does âdevelopâ mean then?
Develop, by definition, means to grow or cause to grow and become more mature, advanced, or elaborate.
Alright.
Letâs see what Wikipedia thinks of software developers:
A software developer is a person that creates software. The phrase âsoftware developmentâ often means more than just designing or writing the software, it usually means someone who manages the project, or does only the main things. Most software developers are still led by a lead software engineer that guides the project.
Damn, even Wikipedia is biased.
Alright, letâs discuss programmers a bit now.
My two cents:
If someone calls me a programmer I associate myself with⊠a peon⊠a lazy peon⊠a lazy peon in the World of Warcraft.
I think programmers can as well be called junior developers. Their job is to follow the plan thatâs been developed by senior developers or the tech lead.
An interesting fact: Programmers typically spend 90% of their time either in their favorite code editor or on Stack Overflow searching for fixes. The other 10% of their time goes into playing Fortnite.
What does a software engineer do?
As someone considered to have a degree in engineering and experience, software engineers can embody the role of a senior software developer (or a tech team lead), meaning, they carry higher responsibilities than the average programmer.
Some undergrads consider engineering to be more of an architecture jobâââplanning out a software solution. Software development, on the other hand, is more about tinkering with stuff and trying out new things.
âIn our apprenticeship programs, we use Software Engineer to describe apprentices that will be working on more challenging algorithmic problems and business solutions that are more enterprise-oriented. Our Software Developers work on a smaller line of business applications, mobile apps, and websites that require UX with a higher degree of polish.ââââMike Roberts, CEO at San Diego Code School
What does a software developer do?
According to Wikipedia, it looks like software developers have pretty similar responsibilities to software engineers. Still, the engineer title ranks above the software developerâs.
Hereâs what seems fair to me:
A software developer is someone who is given specific instructions to follow, but they have the freedom and creativity to play with to take the approach they find most suitable.
They arenât âmonkey see, monkey doâ type of programmers by any means but still⊠they follow a set of clear instructions. Sometimes, software developers can also be deemed as full-stack developers/engineers.
Software engineer/developer salaries
As said earlier, the software engineer and developer terms can be used interchangeably.
Only, to some companies or individuals, they mean different things.
So, when we are looking at salaries, we can consider one as a junior developer and another as a senior developer or a tech team lead.
Letâs say, just for example, that programmers tend to be considered as entry-level developers. Therefore, we can call them junior developers.
As software developers rank above programmers, we can call them senior developers.
And because software engineers have the role of an overseer (according to Wikipedia), doing more managing stuff than coding, we can call them tech leads.
Based on Glassdoor, the average salary of a junior developer is $63,502/yr.
The median salary for a senior developer is about $82,518/yr.
And the average salary of a tech team lead, according to Payscale, is around $101,381/yr.
Truly, one of the main benefits of being a software engineer must be having a salary that puts you in the top 1% of the world population.
Software engineer vs software developerâââskills, roles and responsibilitiesâŠ
I think soft skills are equally important as technical skills. Being a good communicator as a software developer can make you an invaluable contributor to a team.
At some juncture in your career, youâll face tasks that youâd have a hard time completing on your own. Being able to listen to team members carefully instead of interrupting, and do pair programmingâââthatâs what will help you establish a position as a good software developer/engineer.
Here are three good rules of thumb that I believe will help you become a better software developer and rise you up the rankings.
- Ask questions.
- Never multitask.
- If you want the result to be 10, then test for 9 and 11. Wrong results can create a solid solution.
Basically, someone who wants to be considered a software engineer (senior developer or a tech lead) should be able to get the hard stuff that everybody else runs from done.
Education as a software engineer/developer
Đąhe best thing to do is obviously to get a Bachelorâs degree.
Thatâs what most people think at least. If you have the time, money, and patience you might as well grind some extra to get a masterâs degree. Here, you can find some of the best software engineering schools.
A large chunk of professional developers, surveyed by StackOverflow, said that their studies focused on computer science and software engineering.
A smaller percentage of the surveyed respondents said that they majored in related software engineering fields such as computer programming, computer engineering, or IT.
When it comes to the importance of having a formal education as a software developer, most developers say itâs not necessary to have one. What they think is much more important is the ability to learn on your own and grow your knowledge outside school hours⊠being self-taught.
A lot of developers recommend taking online courses or coding camps. These can definitely help you land your first job.
Learning through books and doing online exams can also be considered as a highly effective practice for improving your coding skills.
Contributing to open source is highly valued among developers as well. You can head over to GitHub and build out your software developer portfolio while contributing to other projects and broadening your knowledge scope.
You can also try searching for a mentor.
LinkedIn, I believe, is the perfect place for finding a mentor in 2020.
You just gotta stand out from the typical guy searching for a mentor.
If you land in your future mentorâs inbox with a message that goes along the lines of âHey dear Mike, Iâve been following you for a while, I love your stuff. Iâm looking for a mentor. Are you available?â⊠chances are you wonât get a lot of responses.
Instead, be witty. After all, youâre a software engineer.
Remember thisââââif you can make someone smile or laugh, youâll have a much higher chance of starting a meaningful conversation.â
Iâve found quite some success in the following lines:
âHey Mike. I wanted to introduce myself in a way that showed I was interesting, clever and wittyâââAlas, I wrote this message instead.â
And then move forward to explaining why you are sending them a message.
Of course, it might not work the first time. In fact, if it works the first time, then I call that a f*cking MIRACLE.
Grit your teeth and keep on sending messages. Youâll eventually find a suitable mentor. And when you find it, make sure you overdeliver. Be willing to work for free to absorb as much knowledge and skills as possible (personal thoughts).
However, your mentor should be someone who you want to be 10 years from now (otherwise, whatâs the point of getting a mentor?).
LinkedIn though, might not always work for your situation. In this case, Google local developer meetups in your town.
Or go to seminars and donât be shy to engage with the speakers.
Or maybe go to universities and find like-minded people there. (That can be a bit difficult due to the current COVID situation but you get the point.)
Another option is to apply for jobs where youâll be surrounded by senior developers and able to absorb knowledge daily.
Enough of that.
The life of a software developer vs software engineer
All types of developers are likely to start their day with a cup of coffee in hand while checking their emails.
Once their scrum meetings have concluded, they move forward with their usual tasks.
Programmers (or junior developers) will most likely focus on coding.
Software developers (senior developers) might check on the team to see whether someone has difficulties with completing a particular task.
The software engineer (tech team lead) may have other meetings to attend to make sure the projectâs goals and requirements are conveyed clearly to the development team.
After work, they either hang out with friends or sit on their computers, doing some freelance work, watching YouTube videos, listening to music, or playing Fortnite trying to finally secure that 1st place victory after their 47th attempt.
Their bedtime routine consists of binge-watching anime videos (not everyone I guess lol), reading motivational books Oprah's recommended or scrolling through Hacker News before their eyes give out.
How did it go? Did you like it? Are you furious? Spill out your thoughts in the comments below.
A quick blurb: And, of course, if you are searching for a cool source code repository with a simplistic issue tracker and a built-in CI/CD, go check out Codegiant. Itâs free for smaller teams.
Stay unparalleled,
Previously published at https://blog.codegiant.io/software-developer-vs-software-engineer-31e873e787bc