Many people are unable to differentiate between software developers and web developers. Here is the technical difference between the two profiles:
A software developer is a person who builds software, which generally includes engineering desktop programs like Photoshop and CorelDraw.
A web developer, on the other hand, is someone who is concerned with building web applications.
At the most basic level, software developers as well as web developers need to write codes. They both require three key skills to succeed:
• Ability to follow directions
• Ability to follow patterns
• Ability to write algorithms
Ability to Follow Directions
A developer is often required to use codes written by other developers. The general norm is that a developer must explain in comments how their code is to be used. However, many developers forget to follow a code, thereby making it hard for others to work on their code. Whatever it is, a developer should be able to pick a code and figure out how it can be used.
Ability to Follow Patterns
Often, the pattern of coding is the same, even though the code may have slight modifications depending on minor details. A capable developer would possess the ability to examine a similar code and rework it as per the case at hand.
For instance, in Ruby on Rails, the following code would put the user-sourced data in a form for places into the Place database table:
Place.create(place_params)
A developer should know how to take user-supplied data for a comment, and store it in the database.
Comment.create(comment_params)
Compare both the lines of code. They are basically the same with a few differences.
Examining a code written in the past, recognizing the patterns and following them is a skill that is essential for a developer.
Ability to Write Algorithms
Most problems would require multiple lines of code. Developers need to segregate the problems confronting them into small individual lines of code that you can instruct a computer to solve for you.
For instance, there may be text such as ‘Lara likes cats’. The programmer in this case may be asked to tweak the program so that it churns out the following text – ‘Cats like Lara’.
This problem is not something you would work on every day; so don’t expect any single-line solution. The program you write would run into multiple lines. To make your task easy, you would need to break the program into several steps. This process is known as ‘writing an algorithm’.
Computers have an enormous ability to solve problems, but their way of doing it is different from a human brain. Machines require detailed, unambiguous instructions to find the solution to an impending problem. A developer needs to know the art of taking vague, ambiguous instructions and converting them into the steps that a computer can understand.
Additional Skills
Apart from these core skills, both software developers and web developers need to inculcate a set of additional skills in order to succeed. These include:
Attention to Detail
Attention to detail is one quality that would serve a developer well. If they are prone to committing typo or punctuation mistakes, the code they write won’t work. They need to ensure that the code they write is in line with the given instructions.
Execution of CRUD
In desktop programming as well as web applications, CRUD (Create/Read/Update/Destroy) is often used. Database-driven applications, for instance, are designed to push/pull data into/out of the database. Developers should have proven expertise in implementing CRUD.
Questioning Your Assumptions
You would often encounter bugs and in spite of the efforts you make, you won’t be able to understand why the code is breaking. When this happens, you would need to step back and question your own assumptions about the program.
In programming, the value of X+Y may not always reflect in Z as you desire. If this is the case, don’t assume that the code is doing X and Y parts well, and the problem is in the X+Y part. You may need to revisit your basic assumptions every day in programming. What if the core of the problem lies in X, leading to the bug in X+Y.
4 times out of 5, the problem lies where you least expect it to occur.
Googling
If you are facing a problem, you don’t really need to ask the people around. Rather use the Internet, browse StackOverflow, and explore the documentation as well as the solutions online. While going through all the stuff in your quest to find a solution, you may do a lot of self-earning.
Final Word
As a developer, your job is to write codes, whether you are working on a desktop application, or on a web app. Though the micro skills required to succeed in both may vary, the core skills remain the same.