Before I did web development, I was a engineer. I had worked with software before, mainly with robotics and machine learning, so I thought web development would be an interesting switch. I figured that it's programming and I like to do that, so why not?
It was one of the best decisions I've made, but there are a few things I wish I had known before I made the switch.
Coming from my programming background, I figured there would be a lot of math. I thought that web development used all of these crazy algorithms and that I would have to have be able to translate that math into code. I couldn’t have been further off if I tried.
Web development is more of an art than a science and it took a while for me to understand that. There's always more than one way to handle a task and multiple ways are optimal. It takes more problem solving skills than math skills to be a good developer. Getting to the root of an issue or clearly defining a new feature is a way more important skill than trying to do fancy math.
In all honesty, I thought since web developers mainly wrote code that I wouldn't have to talk to anyone. It seemed like I just needed somebody to tell me what they wanted done and then I go do work alone for the rest of the week. I was really looking forward to that with my first web developer job!
Then I learned about agile development and client requirements. Sure there are days where I don't talk to many people, but there is never a day I don't talk to anyone. Questions come up, project scopes get updated, and clients change requirements. Good communication skills define a good developer just as much as good technical skills. Actually, communication skills are more important.
If you're trying to find a job with limited interactions with other people, web development is not it. This was probably the biggest shocker to me because of all the stereotypes about developers. Developers are some of the friendliest, helpful, and talkative people out there despite how the media portrays us.
There's a level of this in any job, but it's a little different with web development because the changes can be drastic. Programming languages and frameworks get updates all the time. Even IDEs get updated and it could change your normal workflow. Your company could decide to switch to React from Angular or they could switch from MVC to .NET Core.
Or you could get a new job and they use a completely different tech stack. The main thing is that you understand the underlying concepts and architecture then it's just a matter of figuring out how to do that in a specific language. To be a web developer, you have to learn how to learn without missing deadlines.
It might be something as simple as reading articles when you get a chance or working on personal projects to cement those concepts and language specific syntax. Be ready to do a lot of Googling and don't be embarrassed. Senior developers still have to look up stuff all the time.
Based on the way tutorials and classes normally teach web development, I thought every project I would work on would be brand new. I still haven't worked on a new one yet with the exception of some websites I made for people. Most companies already have existing software and they just want you to make updates and maintain it.
That's why understanding the core concepts of web development is so important. You'll be reading through other people's code trying to figure out what they did and why they did it that way. Knowing how to find your way around legacy code is also a crucial skill.
I was lost for the first few months of my web development career. Looking through all of that code is intimidating when you don't understand some of those core concepts. It can also be a little disappointing if you were really looking forward to showing off your new web app building skills.
This one caught me off-guard. In engineering, there are certain regulations you have to meet or your designs are sent back or completely scrapped. The work is heavily monitored and the number of signatures you need is incredible. In web development there are best practices. It's a set of rules that make web development easier, but they are open to interpretation.
For example, not every company uses agile the same way. Not every company makes time for writing tests or they skip certain parts that they feel aren't necessary. Of course there are some rules like with SOX and HIPPA, but not for the architecture of the software and the way code is implemented.
You might need to get a pull request approved and it might get shot back for a few changes, but the process is nowhere near as regulated or enforced as I imagined it would be. Web development really is like an art because everybody does things a little differently. It depends on the languages you use, the environment you work in, and the people you work with.
Those were just a few things I wish I had known in the beginning. There are a lot more resources out there now, but none of them really take the time to explain what a professional developer really does each day. Hopefully this gives any beginners a little more insight.
Were there any surprises to you when you became a web developer? Did you have expectations that were completely blown away when you got your first job? Especially if you were making a career change from a completely unrelated field.
Hey! I'm doing a free webinar on May 26th over Git. You'll learn everything you need to know to start working with Git and GitHub. If you haven't used Git before, this will be a great introduction to it. If you have used Git before, this will be a pretty good refresher. You can go register for the webinar here