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.
It's has nothing to do with math
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.
You have to talk to people quite often
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.
You really do learn as you go
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.
You'll typically not start a project from scratch
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.
There aren't any real regulations
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! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding
Top comments (36)
Great article! I love the line "To be a web developer, you have to learn how to learn without missing deadlines."
Yup, that's it in a nutshell.
Truth! And be willing to put in extra work that would make most people run away. Lol!
Which brings back again the taboo around the issue of estimations... I wonder what the #NoEstimates movement proponents would say about this.
I think that being able to deliver a solution in time is fundamental to this craft, which doesn't mean you have to tolerate abusive working relationships or exploitation.
You typically aren't starting projects from scratch is such a big one! Blank screens can be intimidating, creating the scaffolding for a production application is a challenging learned skill. But you don't need to know all that to start being an employed developer.
It's yet another reason I don't think technical interviews appropriately capture on the job skills.
I like your article and the points you made except the first one that web development has nothing to do with Math. That I disagree. Problem solving skill comes from math. Everything that has to do with Math, has to do with solving problems one way or another. Art is more off being creative and that's completely different from problem solving.
I am now a Full Stack developer who started from traditional art (drawing and painting) to digital design, 3D modeling and animation to VFX (special effect) before learning web development and I can tell you that I appreciate all the math I did before learning web development. My art background only help me to analyze and visualize projects from a creative stand point but my math background greatly contribute to how I solve many of my programming challenges my friend.
While some problems are solved mathematically, not all are. And when you read an article like this one written by an engineer with background in robotics and machine learning, realize that the math she is talking about is above simple high school algebra. Very few web developers need high-level calculus, statistics, numberical analysis to build portals. This, in fact, is the fundamental reason why coding boot camps can kick out web developers in droves with not so much as a math refresher.
Definitely, agree there.
The "math" that you would apply to the average website/web application, is often limited to some dimension/scaling computation. A sorting algorithm perhaps, or something with applying interests/taxes to a certain financial amount.
There are of course exceptions to the rule, but those are not the standard projects for web developers.
Does that mean that web development is easier? I believe it's not. It's different. Not every engineer is suited for both fields. I expect from a senior web developer to have a certain "feeling" about what he is building.
This feeling; you have or you don't. An algorithm can be tested by a unit test. The decision if the button should be aligned left or right, can not. In the perfect world, we have UX designers for that. But in the real world, they are not always on the team.
So a senior web developer should have a certain feeling for common sense. Also there, I'm sure that not everyone agrees. But that's how I run my team. I don't spec every integration. I don't convert every mockup to a final UI design. The mockup is what you use, and convert to match our standards and used frameworks.
I had a comment once on a retrospective; the point for improvement was that new functionality should be specced better. Because there were multiple development cycles required before we reached a final thing that worked in a nice way.
The point being; that development cycle was planned that way. But the developer wasn't comfortable with that. We often need something, of which we are not entirely sure how it should work. So we start with a prototype, we stabilize the code, get some users to try it, collect feedback, improve usability, collect feedback, ...., finalize.
Sometimes the feedback part is internally between developers, sometimes clients/users are involved. Sometimes this cycle spawns a few product versions, sometimes it's a faster iteration.
The alternative is to spec everything. That's more clear for the developer. And it might even be a bit faster in total time spent if there is a good idea of the product you want. But chances are big that you don't get what you wanted. That it works suboptimally. Just because something works in your mind or on paper. Doesn't mean it will work in the real world.
I guess it depends what people mean by math exactly.
Boolean logic is math too. So you could say that, whenever we write an if statement, it's technically math 😁
It is true that you learn a lot of problem solving and logic when you do math. I'm glad you have been able to use those skills you have learned from math. But my point was more like what Shawn has said.
It's great to have a math background, although it's rare a developer would have to do advanced math like calculus or Bayesian statistics.
Plus there are a lot of other ways to learn problem solving and logic. ☺
All of the above plus working on a framework based on a language without having any full grasp on the language at my job: I shifted careers from Android development to web development and started using symfony with a very basic knowledge in php
But having to deal with clients, non tech colleagues and others overall was the most surprising, I chose working with computers coz am not a humans person, so having to build the communication skills was my hardest challenge
This article is spot on! Communication is such a crucial part of the job, probably the most important. Choosing your words carefully when you take to non technical people. Having the ability to adapt your speech to your audience will make you an amazing developer 👍
Great article!
You have out into words what I've been telling my past interviewers:
I don't know your framework, but I've worked with 10 other similar frameworks, so I know how to learn a new one!
You really have to be versatile in this field.
Keep up the good work !
Thanks for sharing your web development experience. Even I'm a web developer aspirant and I did realize one of your shocks during my practice. But all the same, I consoled myself that any cool concept that involves math can be an addon to the site.
Yeah I couldn't agree more and its really simpler than people make it out to be more often than not.
It really boils down to more familiarity than logic and solutions because problems are recurring(and similar/common) and so would be solutions.
In other words, one can say experience is a currency more valueable than any when it comes to web dev.
Hi Dear
I don't know how you've started but I tried to understand the way of working. I tried many times but can not get to the simple core of understanding.
"In engineering, there are certain regulations you have to meet or your designs are sent back or completely scrapped."
This. A million times, this. I was one of the people that for the past 10 years I was bragging for being a "software engineer". Thanks for the article, you helped me see the truth that was right in front of my eyes and I chose to ignore.
Thanks for the article!
I am a bit scared to jump off to web development.
I am currently a web designer (sadly not too much coding) and I want to move to web dev but I am so scared!
Your article gave me a little more confidence :)