Being a Well-Rounded Web Developer has its Advantages

May 27, 2014

All software developers are proficient in at least one programming language with knowledge and experience ranging from those who are just out of college to the mastery of the languages’ creators. But there is only so much time in a day and most of us must make a choice as to how we spend that time, including when it comes to developing the skills we use in our professional lives. For web developers decisions have to be made about what to learn, how much to learn, which skills to sharpen and when to use them.  I believe that in this field it pays to be well rounded.

To a web developer a programming language should be a tool, not a way of life.  Different problems require different approaches. One wouldn’t use a screwdriver to fix a leaky pipe when a pipe wrench is available (maybe you would, in which case you are either confused or ingenious) and likewise one wouldn’t use a programming language lacking features for processing HTTP requests to build a web site. If a developer has access to a large tool set then they also have the ability to solve a more diverse set of problems. Of course, proficiency is required as is knowing when to use one language over another. An analogy here would be owning a Spirit Level and believing the bubble tells you it still needs filled up a little more. Likewise if confusion arises when a jQuery script doesn’t connect directly to a database, further reading is necessary!

In continuing the analogy of programming languages as tools it should be apparent that some problems require multiple tools working together and although many combinations might get the job done there is often a beneficial synergy when the correct selection is made. Sure, a web service can be created using C++ and XML but leveraging C# and JSON via Javascript will likely lead to a more modern, maintainable and useable interface for other applications and services interact with. Here we might imagine transferring gasoline from one car to another with a garden hose and orally generated suction (blech!) compared to using a self-priming siphon. Both methods will get the job done, but I’m guessing there is a definite preference for one over the other.

Learning new things is the first step to being a better learner. If someone wants to become a software developer that specializes in responsive web design, they must first learn how to use a programming language, which is something they likely had little to no experience with previously. It will likely take a significant amount of time, troubleshooting and dedication to achieve any level of mastery. But once that effort is sowed there will be many benefits to reap. Learning one programming language lays the groundwork for learning new ones, cutting the time required to achieve proficiency with the next language tackled. This is why a book teaching C# aimed at someone with no programming experience is going to be much longer than one aimed at those who already know an object-oriented language like Java. Simply put, learning how to use a tool makes one better at learning how to use tools -- and this benefit is cumulative. Learning how to use an electric screwdriver might take some time but then learning to use similar handheld power tools will be more simple and more fun More Power! Arh arh arh!

Finally there is the matter of perspective. Since different tools have not only different uses, but different means of being used, perspective can be gained on the tools we already have knowledge of, by way of the ones we don’t. A web developer, like one working at WiredViews might use languages like C#, SQL, Javascript, HTML and CSS but learning a functional language like F# might help that developer write simpler, cleaner code. Learning Ruby on Rails could enhance the understanding of request routing and the MVC design pattern.

I’m not providing anymore fun analogies here - it’s time to follow one of these links and learn something new.

------------

What keeps you from learning new languages or inspires you to continue to learn new languages? Sound off in the comments and let us know your thoughts.

Sean G. Wright is a Chief Solutions Architect at WiredViews. He is also a 2020, 2021, and 2022 Kentico Xperience MVP, and a founding partner of Craft Brewing Business, a B2B publication for the craft brewing industry.

He loves to learn and teach web dev & software engineering, collecting vinyl records, mowing his lawn, and drinking craft beer 🍺.

You can follow him on Twitter, GitHub, and his active blogging about Kentico Xperience on Dev.to.