Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is web development still a viable career choice?
292 points by jessmc on Jan 8, 2019 | hide | past | favorite | 240 comments
Hello HNers,

I am an aspiring web developer. I have been self learning for around six months and still have not found a solid path to follow. Six months sounds like a lot but realistically it has been a few solid weeks of learning since it is a side hobby that I hope will turn into my career.

Is the Web Dev job market in a good enough state that I should risk more time and money?

Thanks for any advice…

The thing about web development is that the definition of "web developer" can vary wildly. Web development is a big field and can include a wide range of skills. Making a static html info page is web development. Building a SPA with a database and auth and user uploads and deploying it on aws/azure and scaling for a million users, also web development.

If you are thinking along the lines of the first example, eg. the "I know html and css, I can build a website with pictures and operating hours for a mom and pop shop" developer, this market is shrinking with platforms like wix and squarespace where regular people can build these sites and maintain them easily and for cheap. Not to say you can't still make a living doing this, but it is something to be aware of if it is the route that you choose to take.

If you are thinking more about the second example, yes, there is a high demand (and rapidly growing market) for this kind of developer at startups and fortune 500s and everything in between.

Overall, the answer is yes, web development is still a growing field and it is absolutely a viable career choice, but it is important to keep learning and be aware of the market and adjust accordingly

Right, web apps aren't websites. The distinction is pretty sharp when you move from a simple static old fashioned display to Amazon tier complexity where money is being transacted, log in information stored, orders updated, and a million more things besides.

The big question is if the internet and its primary portals, the desktop browser and the smartphone, will reach the end of their tether. The only thing I could see replacing it is neurotechnology of some sort, and that seems so far off and so difficult to commercialize that it's not something web developers need to worry about any time soon. Or perhaps quantum computing becomes commercially viable and simply shoves digital computing aside, negating the need for those skills completely.

Another alternative is that the web radically changes unforeseeably and new practices instantly antiquate everything people are learning now, which is a more frustrating and realistic possibility and also something that is bound to happen. Given how difficult it can be for many people to learn these skills, and given how much knowledge one must integrate to be a productive developer, this is an upsetting potentiality and one that is bound to happen eventually.

Not every field carries these risks. Law practice isn't going to change fundamentally in the coming decades. And some aspects of coding can be exhausting and demoralizing to learn. Past generations of coders have had their skill sets rendered null and void and it will probably happen again at some point to this generation.

>Right, web apps aren't websites

>Amazon tier complexity

I'd go even further and say that Amazon-level things aren't web apps to, that's a different level of web resources. It is one thing to write fairy complex web app with auth, log in info, security etc, building enterprise level system is a different thing.

Another risk I think is the automation of coding. It already happens all the time, and in principle coding should be the most automatable of anything. The only thing saving it is that it's very hard to automate the creation of good ideas or purposeful human intentions, which naturally inform most successful coding projects. There's also a bit of a conflict of interest, why would coders building automation systems want to automate themselves out of existence? I think these rationales protect software developers' job security for the near to mid-term future.

I'm also thinking that how people code could change drastically, but even so, that's less of a problem. Because the rules and logic of any programming language boil down to fundamental computer science principles which should remain constant despite the interface you're using to code, whether it's a keyboard and monitor or some kind of visual drag and drop thing or whatever someone comes up with.

You have to think of it at a higher level: My job isn't coding, it's clarifying ideas. Programming languages can get higher-level, and more automated, but nothing is ever going to free us from the burden of clarifying our ideas. I believe this makes my job (the interesting parts, at least) pretty safe in the long-term.

That's a very nice way to put it IMO. See also this commit strip comic about the same topic: http://www.commitstrip.com/en/2016/08/25/a-very-comprehensiv...

I tend not to worry about programming automation, because I believe it has actually been going on for a long time with higher level languages. E.g. when programming was done at assembly level, the advent of C did not reduce the number of jobs, rather it made programming more powerful and created more jobs. Same with Java and 'automated' memory management. Same with Ruby on Rails, php, etc. By simplifying developers jobs, developers can create bigger and better products, which increases adoption of technology, which creates demand for even better products, which leads to more jobs and more automation. Maybe I'm wrong but I don't see any end to this cycle anytime soon.

I agree... but I just find that automation leads to more productivity which leads to more demand. There are always additional projects and features to be developed. The way development has focused in prioritizing features over handling technical debt, or adding bodies for features which escalates accumulating tech debt more quickly will always lead to more work.

> in principle coding should be the most automatable of anything

You still have to describe to the automaton what you want it to do -- and in doing that, you're programming.

Modern languages are all "automated programming" already -- you aren't writing machine code, you're describing to the automation system what you want, and then it generates the machine code for you.

This feels, unrealistic. Coding practices, tools and technology have minimally changed since the 70's.

Faster machines, but with each new language, you still have the baggage of design/code/compile/test/debug/refactor and the library/dependency hell that plagues things like oh, say Node.js with NPM, maven with Java, make with C/C++ etc. etc.

Then there is the flood of new "UI hotness libraries" in the JavaScript space alone. Pick one. wait 6 months and see what else is now the new hotness or if your current one has changed with a new major version release (Angular?).

There should be more folks like Bret Victor working with language teams in the FANG(+MS) companies to drive some further breakthroughs in reducing cognitive load and tool/library dependency complexities.

Where are this generation's Alan Kay and Jean-Marie Hullot types, pushing the envelope on software development environments?

> in principle coding should be the most automatable of anything

All coding is itself the act of automating something. I don't think there is a risk to developers as there is always more to automate. We use products that automate our own programming tasks to create more code to automate yet more things.

Whether or not programming can be completely automated is an interesting question.. when I think about what would make it unecessary for a human to be specifying the behavior of a computational system the only phrase that comes to mind is "general ai".

I'd add that even for digital applications that are not web-based (native apps, console games, etc), there is still a need to talk to a server.

So regardless of market fluctuations, server-side development will always be in demand, and server-side dev is a subset of "web development".

So yes, definitely, web development is a worthwhile field to go into.

Solving [business] problems is a viable career choice.

Web development could be solving someone's essential business problem or totally non-essential for someone else.

The key is to find the customer for whom whatever you're doing will solve essential business problem.

Quite often web development is exactly what customer needs but he won't call it this way. He won't use this wording. He won't look for web developer. He won't pay for web developer.

But if you approach customer by speaking customer's language and showing customer how you can solve his problem - the result could be way more win-win and productive.

You won't hire an expert in "connecting wooden boards with nails" but you'll more likely to hire an expert in "building houses" to build your own house.

That's an idea.

This is just bypassing OP's question. You could similarly ask if plumbing, plastering or tiling is still a viable career choice in construction, or whether one should focus on general carpentry.

You'd then try to work on projects where your construction specialty is seen to be more valuable than not, that goes to your comment. But that's an entirety different question than whether a specialty should be pursued, and if so what specialty.

E.g. in this case whether it's still a good move for a new developer to start out his career by focusing on web dev v.s. say native mobile dev, or mainframe development or whatever.

For whatever it's worth, their answer was pretty close to my immediate reaction when I saw the question. Maybe another way of phrasing the answer is that no, I don't think 'Web Dev' is a viable career option. This becomes even more true when viewed on a time scale of 10, 20, 30 years. (Tying to a specific technology brings the horizon in even further... Web Dev 20 years ago was CGI scripts, 10 years ago it was server-side rendering frameworks, these days it's SPA's...)

What I do think is that 'Web Dev' might be a viable first step within a career. It's a good way to get yourself into a spot where you're exposed to signifiant problems, and if you're lucky, it will also give you exposure to people that can help you along, as you develop your career. (But it's important to be intentional about both.)

At the very least, that's how I answer then question when asked in person... focus on the specific tech as a tool in the short-term, and then focus on effectively solving problems people care about. It's better for them, and most likely, better for your own personal career development.

(Edit: Some of this may just be my own perspective... My professional work has included everything ranging from small scale embedded programming to large scale clustered web apps and platform development. I'm grateful for never having thought of myself as a 'web dev', even though it is something I'm capable of.)

Dunno, I started out with a lot of perl-cgi, and now do mostly react/redux/material-ui on the front end... I've picked up a lot of backend stuff over the years. SQL/PostgreSQL/Firebird/DB2/Oracle/mySQL, mongo, aws, azure, rethinkdb, rabbitmq, etc... The key is to not rest and constantly be learning/growing. That includes line of business knowledge.

I love this kind of work. Writing learning software for airplane systems. Accounting and auditing systems for fortune 100. Kiosk+POS for water distribution platforms. Security software. Election services software... It's been an amazing 24 years, and I have absolutely every intention to keep learning/working until I die.

I find that a lot of people just think that "web dev" stops at the browser.

Since now the web interface is ubiquitous everything could be labelled as "web dev", but for me your examples are general "software dev".

OP did not ask if they should pursue “web dev” vs “general/other dev”. That’s an assumption you’re making. I read this as “web dev” vs “do something else entirely” and in that light, the parent response is entirely appropriate.

Tangent: “general carpentry” is not a superset of plumbing/tiling/plastering. Carpentry is its own skill related to working with wood and similar products. Maybe you meant general contracting? Although that’s still not actually a superset and you won’t find that most general contractors are licensed for plumbing and electric work.

You are making an assumption here they want to freelance or take a consulting position. There are plenty of web development positions available on teams or at agencies that find the customers for you. There is no need for someone just learning web development to go straight into consulting work. In fact, I'd highly recommend against it. You'll get the most out of working with other developers and improving your skills before you go out on your own (if you ever go out on your own).

Edit: To summarize, not every web developer needs to be an entrepreneur.

> In fact, I'd highly recommend against it. You'll get the most out of working with other developers and improving your skills before you go out on your own (if you ever go out on your own).

I often wonder at the whole "gotta be a contractor" mentality. I understand there's more money there, but I think that there's a huge value in learning to be a team player where you're building something you are actually invested in, if even for only a 1-2 year period. As a contractor, the skills you build and lessons you learn are important, but they aren't as concrete as living and dying with a particular team and a particular solution for an extended period. In addition, I feel like you are more likely to get vital mentorship at the critical early part of your career as a member of the team instead of a replaceable contractor cog.

If anything it seems that to be successful at freelancing you need to specialize even more compared to a traditional job. Otherwise, your skills would become a commodity in a market saturated with "web developers".

> Solving [business] problems is a viable career choice.

This is spot on, whether you are free-lancing or working as an employee in a big organization.

More generally, software development benefits from a large flow of money precisely because, whether directly or indirectly, it enables businesses to accomplish things in a {faster, more efficient, cheaper} way. When career planning, always remember where the money comes.

Interacting with an end-user is not a "solved problem" that has been commoditized. There are still a lot of human touch, optimizations, edge cases and performance issues that are actively being worked on and have not been formalized and standardized in ubiquitous ways for all industries. Sure framework XYZ may get you 80% there but then there are specific UX issues that you will have to delve in, and that's where the real fun begins.

Yes. I am the co-founder of Lambda School - (YC S17 - a CS education where the school doesn’t get paid unless you get a good job). Right now we see about 3 students/day get hired.

You’ll likely hear a lot of people talking about how the market for juniors is flooded. That is partially true, but it’s flooded with people who cannot code. If you can actually be a productive employee I literally know 100 companies that will hire you today. As a self-taught engineer you have to convince them of that, which mostly means a solid portfolio, but there is insane demand. And if you get even one year of experience you won’t believe how many opportunities open up.

There are individual companies whose annual growth in engineer hiring is greater than the total number of CS and bootcamp grads combined.

>If you can actually be a productive employee I literally know 100 companies that will hire you today. As a self-taught engineer you have to convince them of that, which mostly means a solid portfolio, but there is insane demand. And if you get even one year of experience you won’t believe how many opportunities open up.

This just isn’t true.

The industry has become insanely competitive for anyone but the top level seniors who are above the whiteboard/coderpad interview. I’ve been on the market for 4 months now without so much as an in-person interview. It’s absolutely brutal. And that’s with 3 years experience + solid references.

For every job posting now there are a hundred freshly minted CS grads applying who can pass LeetCode exams in their sleep. It seems companies are far more interested in these people than those with self taught skills and practical experience.

This is the result of poor tactics. If you're not a CS grad, quit the CS grad hiring path.

Get off the job boards and use services like Vettery and Hired, do outreach on LinkedIn with recruiters and startup CTOs/VP Engineering/Engineering Leads, go to more popular tech meetups consistently and network. Every job I've gotten has been through this.

> This just isn’t true.

Yes it is (but you need to be overall personable and have good communication skills). After 1 year at a small dev shop I started with 0 years of experience, I got an offer at a big company you've heard of (not FAANG but public) for double. I didn't take it because I got bad vibes from the management but it was great to know I could. I say this not to brag that I'm brilliant because I am decidedly NOT brilliant - there have always been better coders than me everywhere I've worked since.

However, I had some PM experience before learning development which helped my "business" bona-fides. If you are 19 going from taco bell to a bootcamp I imagine proving that you can fit into an actual business culture is more important to getting you a job than coding ability (which is the min bar).

Truthfully, if you have 3 years exp with solid references, you should have recruiters knocking down your door with (mostly) bad offers of underpaying shops. There's no reason you shouldn't unless theres big red flags on your resume.

I hate to break it to you, but you're just not trying hard enough - keep trying.

During my last round of looking for a job I never applied to a single company, I let all of the recruiters come to me. In five months, I had a total of five interviews and three offers.

I have an active github portfolio which shows a professional picture of myself and I have React skills which might set me apart (React is very hot right now, won't be like that for much longer though as the market is starting to saturate), but aside from that I'm self taught and have about 3 years of professional experience, ten if you include personal/self-taught experience.

I had to go through some BS phone screens though, it was to the point where I had to buy books specifically on C# design patterns and architecture just to pass them, I had managers grilling me on some pretty esoteric aspects of the language, but it was worth it. (I have ten years of self-taught .NET development experience)

Notice you guys are in the UK! I'm a self taught engineer (more back end focused though) and I'm trying to help my younger brother enter the industry. Is there a minimum earning threshold for the 10% salary deduction for UK courses? I think something like this would do him the world of good, especially looking at your curriculum, but don't want to saddle him with debt if it doesn't work out.

>>> there is insane demand

I am seeing it as well. And am recommending Lambda School to just about everyone who asks ;)

The main problem I see is the steep learning curve. The intro lessons are facile enough. Anyone can setup VS Code, and install an App Engine SDK. But by the time they get to modules 3-4 ("designing the data schema"). They are ready to throw in the towel.

At some point, a student requires one-to-one mentoring and repeatable reinforcement. Like learning a second language or playing the piano.

Also check out this nice write-up in Dealbook today on Lambda's model:


> At some point, a student requires one-to-one mentoring and repeatable reinforcement. Like learning a second language or playing the piano.

It’s entirely possible to be a self-taught pianist. It’s also entirely possible to learn a second language without ever speaking to someone else in that language. What you can’t realistically do is become conversational, because you cannot practice that skill in isolation.

Similarly, it’s entirely possible to learn to develop software independently. You can learn languages and SQL normalization and good design all by yourself. You might learn faster with a teacher, but you can do it independently. You cannot learn to work well with others (properly subdividing designs, dependency ordering, giving good feedback, etc) in isolation, but honestly these are the things you generally learn on the job, because schools also suck at teaching these things.

Case in point: I'm self taught and have a junior manager job in software engineering. I had a lot of good resources and got some guidance, but I never went to a boot camp or had a dedicated mentor. It was just a lot of "learn something, apply it as much as I can to the job I have, keep learning, keep trying to understand the big picture." Eventually I developed enough knowledge to get hired as a programmer and moved up from there.

Good job. I think determination and willpower like you have is fairly rare, at least where I'm from (Midwest US).

I think it depends... I've worked on interviewing and hiring candidates that come out of coding schools. It's generally those that go above and beyond the assigned homework that get hired. When you're working as a developer, most of the time you don't have a prescriptive answer and you need to figure it out. Sometimes it's not the best solution, but that is the point advice can be given on how to improve/mentor.

Self-drive is probably 50% of success as a software developer. 35% is knowing what some of the options are (prescriptive or otherwise) and the last 15% is aptitude. You can be a solid B level developer without any aptitude, but it requires more drive. YMMV.

Different people have different personalities. When I was 4yo, I broke the training wheels off my bicycle and figured it out myself because it felt like they were more in the way trying to ride. In my early career, I spent time removing obstacles and learning literally everything I could. I am self-taught, not higher education at all. Other people need more hand holding. Once you start working, you need to be able to jump into the deep end and at least tread water.

One on one dedicated mentoring is very beneficial but not a requirement. You can also obtain mentorship/advice just by visiting various communities and asking questions online as well.

Over the past decades, many developers are self taught. And online communities and resources have only improved over time.

I wanted to PM you but don't know how, hence throwaway. I apologize for not using my real hacker handle.

I've just graduated (did 3 IT study programs in total -- 6 years of studying, overkill yes, I didn't have any good career advise via my friends, family or uni).

Do you help people from the EU to work in the US? If so, then I'd really consider applying to your school since I am noticing that I can't get there myself and US companies aren't noticing me.

I am also pretty open to learn basics again since right now algorithms and data structures has been years away. And for advanced topics I only needed that knowledge on a surface level.

Not just the U.S. but in most cases, short of a Masters degree or equivalent, it's almost impossible to get hired in another country (some countries have easier migration treaties). Even then it will be difficult. You might be able to come into the U.S. under an H1B program, but there are down sides there.

I'm in the US and have looked into moving overseas in the past. Good luck, I wish I had contacts that could help/share, I just don't.

We just launched in the EU yesterday, but immigration is very difficult right now, for obvious reasons.

Will you have classes in EU timezones as well? I have friends who would be interested in that.

Also, I noticed on the website that when I check a course it says that ISA option is available for EU citizens as well, but your FAQ says that it is for US only.

Is there anything similar to Lambda School in Spanish? Looking for a family member who would be a great dev, but her English isn't quiet strong enough to join Lambda School.

Start there, learn English. I know so many potentially good devs that cannot be hired at good paying companies because of lack of English skills. (Speaking of Mexico, btw.)

>Right now we see about 3 students/day get hired.

Do you have some salary statistics (maybe broken down by market) for your grads?


We need to do a better job of breaking it down geographically, but it’s what you’d expect. $100k+ in SFBA, big salaries in cities, lower salaries (but actually higher standard of living) in smaller cities.

If you were getting started today, would you choose the data science or web dev track if you were looking for most long-term career stability?

I would say it depends on whether you enjoy the data engineering part of data science. E.g. writing SQL queries, writing scripts to scrape data from APIs, tracking down edge cases and verifying correctness, designing clean and scalable pipelines, writing scripts to make messy data cleaner, automating report generation, data warehousing. This is very detail-oriented work and requires a certain kind of personality to excel at (imo). But if you build this skill set there is extreme demand for you that will be timeless. This is also the foundation for all data science.

If what you have in mind is feeding data into TensorFlow or PyTorch, and tuning parameters to get some magic out the other end, I don't think there's as much of a market (there are many juniors looking for work from bootcamp programs), and you risk yet another "AI Winter" backlash making companies go sour on these sorts of approaches.

I think you could also easily getting a job as a master of a particular analytics tool, like MixPanel or Google Analytics. But I'm not sure how timeless this will be: in my experience sooner rather than later you'll want deeper and more customized tools and run into the limitations of simple event-based analytics services.

It depends on where you want to start out, or go. Most developers of all types will wind up working in a dozen different environments and tools that weren't even a thing when starting.

In the end, you will never be able to stop and rest on your laurels, as you will be unable to find work if you do. Constantly learn, constantly grow, and when starting out, go above and beyond any assigned work.

You're probably correct (I don't know enough about the junior applicant pool myself but I am going to speculate nonetheless), but 'cannot code' is vague, and I think this precise sort of vagueness creates confusion around: a.) What companies need. b.) What companies think they need. c.) What prospective programmers think companies need.

What companies actually need (or should need, if they're solving some problem), I'd argue, is people who are capable of solving domain problems in structured ways. This has everything to do with logic and almost nothing to do with 'programming' or 'coding' in the sense that I believe most people understand those words today. This is a skill that has very little to do with knowing xyz language, framework, or even paradigmatic abstraction and everything to do with having familiarity or mastery of both recent and ancient mathematical and logical principles (algorithms, data structures, computability theory, set theory, lambda calculus, etc.) Of course, the way we actualize these skills is through programming languages, but programming languages themselves are not the important part (at a high level).

I think a lot of hopeful and ambitious autodidacts unfortunately miss this, as the bulk of (I'd wager) free resources for learning 'how to program' do not do an adequate job of conveying the fact that programming is ultimately the application and encoding of abstract principles into a concrete solution for a particular problem domain. This effectively leads to a pool of job-seekers that are well versed in the latest lower order abstractions (as these are encoded in programming languages, e.g. iterators or a particular framework or paradigm) and not higher order abstractions (e.g. what makes a particular construct iterable, what structural properties suffice to assert 'iterability' of a set or structure, or e.g. how should one compare paradigms and select between paradigms for a particular problem).

At the end of the day, a lot of this doesn't matter. Most people in the programming field do just fine without diving too deeply into the heart of computability or information theory (some demanding positions in the field, of course, are exceptions to this). But I think if we want to produce better 'coders' an important step lies in disambiguating logical/mathematical/programmatic problem solving from the concrete practice of 'programming' (using a particular language with particular resources, paradigm support etc.) From what I can tell, University CS programs do an effective job at this (e.g. classes on algorithms and data structures and architecture are all distinct) but many free resources, I feel, do not. This may be the culprit in the production of that bevy of people who 'cannot code'--they can program, but they can't problem solve computationally or model problems well (I can't do this myself). And I think it leads to the following common realizations on a.) b.) and c.):

a.) Companies need people who can determine and analyze sets of potential structured/logical/computational solutions to problems. b.) Companies think they need people who are good at using xyz tool in particular because xyz tool/language/paradigm etc. is popular, new, generally thought to be useful, etc. c.) Prospective developers think they must learn xyz tool/language/paradigm/framework because companies seem to want that. They do so, never exploring the fundamentals behind xyz tool/language/framework and move on to learning the next xyz ././. next year to stay relevant.

The result is that many companies are bound to the solutions, abstractions, patterns etc. that xyz tool/language/whatever supports and thus they're actually quite okay hiring people who cannot really 'code'.

In truth you probably only need a few smarty-pants engineers behind the important stuff. The majority of folks can enter the workforce only having a basic knowledge. The ones that are curious enough will start to dig into the general/abstract principles behind computation and eventually learn enough to fill the shoes of the big boys. Most entry level programmers can get by just fine with a thirst for further knowledge, the ability to notice, adapt to, and use patterns that are already in place, and some very basic analytical skills. Of course, many hiring practices don't necessarily reflect this, which leads to the classic condition of "in the interview I had to show that I could do abcd with data structure xyz and implement algorithm hjk to solve problem p in t time but on my day job I just write against apis."

Disclaimer: I am not a programmer or software engineer. This is just my sense of the state of affairs as a curious outsider (I do work in the software field, but my job role is different).

You voice a lot of similar conclusions I've come to, as someone who's mid-level and came through the bootcamp/practical application route.

One of my coworkers has a Math/CS degree and I feel like he's light-years ahead of me when it comes to solving algorithms, to address just one facet of your comment. He can see the underlying problem/solution at a much deeper level. At the same time, I think that teaching the deep theory first would have been too abstract to me; it makes more sense now that I have some practical experience and have encountered real-world problems that need to be solved.

From my experience, it's often what should be simple understanding of workflow logic or specifics to the language/environment one is claiming knowledge of. My expectations at an interview level are extremely low, but still would pass at least 2/3 of candidates by.

That is partially true, but it’s flooded with people who cannot code.

I no longer believe this.

I think “people who cannot code” is a myth perpetuated by those who gain something out of it. People who’s business or job is to filter candidates, people who’s business is to sell their own “improved” version of training, people in need of an ego boost and actually, mainly by people who just repeat it cause they heard it somewhere. I’m off that train.

But, then again, I just might be old and wrong.

I literally know 100 companies that will hire you today. As a self-taught engineer you have to convince them of that, which mostly means a solid portfolio, but there is insane demand.

I’d like to test that.

That’s my homesite: https://www.ronilan.com

I’m in the market.



As a hiring manager, my experience has been that the average unsolicited resume belongs to someone who can't implement fizzbuzz. (this has a lot to do with the population that spams resumes though i believe)

My experience has also been that most raw junior candidates need significant handholding to implement anything into a typical production system at first, and that the learning curve from there varies greatly.

What do you think?

Last time I was involved in hiring I created a very simple coding challenge. I've seen far worse on the other side. The goal was to read in a CSV file, read and transform it to a different format (newline separated json) node.js preferred and put it on github. There were no restrictions on what libraries could be used, no requirements for unit tests, etc. It's something that literally took me about half an hour to write at the time. Only one candidate had a working example, even then there were a couple bugs in the transform, but at least the process worked. It's surprising to me how many junior devs cannot do a simple ETL in a scripting language.

Last year, I took a contract leading a dev team at a top company here in Austin. The team, largely educated in India, said doing substantial ETL-like cleanup of the pipe-separated 15GB input file would take then about 3 days: 1 day to write the Scala & Java code, and 2 days to process it through the Spark cluster. I shocked them when I called B.S.! I spent the rest of the afternoon showing what you can do with pipelines of grep, cut, paste, and awk. Took 2-3 hours to build the proper pipeline and only 15 minutes to run it on my local laptop hard disk. The sad thing is they were impressed, but still inclined to use the ridiculously complicated cluster pipelines instead, since that was "the way we were taught..."

This sort of stuff isn't taught anywhere though, you have to either be shown it by someone else in a previous job, or have it annoy you enough to figure it out with some serious google fu (and the freedom to follow that path).

It's an unknown unknown, a lot of programmers will simply not know you can use quick and dirty scripts to process data if you're only going to do it once.

I work mainly in .Net and the similar problem I see is devs who don't even know that console apps exist, let alone how to make them, which simplifies prototyping new code immensely.

>This sort of stuff isn't taught anywhere though, you have to either be shown it by someone else in a previous job, or have it annoy you enough to figure it out with some serious google fu (and the freedom to follow that path).

Sure it is taught. It's taught by some people ( including me - plug here for my Linux and Python courses, with testimonials: https://jugad2.blogspot.com/p/training.html ) in their Unix / Linux courses, as examples of how to really put the classic (and oft-quoted) Unix philosopy + command-line tools + shell scripting to good use, synergistically ("write small tools to do one job each, well, and connect them by pipelines and I/O redirection, etc. etc.").

It's not even rocket science; bread-and-butter EDP/IT folks (programmers and even operators) (not just clued-in software engineers in product companies) have been using such scripts for decades, routinely, without thinking they are doing anything great or out of the ordinary. (And similarly for other OSs, I'm sure, such as Rexx on some platforms. Not sure what was used on Windows before PowerShell, maybe Perl and/or one of the Unix toolkit clones like MKS Toolkit or Cygwin or UWin - apart from clunky batch file language and DOS/Windows command-line commands).

It's just that it is not so well known nowadays among the (often mainly JS-using) generation, who even write CLI apps in Node.

>It's an unknown unknown, a lot of programmers will simply not know you can use quick and dirty scripts to process data if you're only going to do it once.

It's their loss (and that of the industry), comes from not trying to learn about prior art.

There's even a name for it: NIH syndrome [1], and heck, even that is not new :) Dates from early IBM days or earlier ...


Because for some, tools like awk, sed and perhaps grep are unknown skills.

The focus is on pumping out Java or C++ folks who never were given assignments using said tools and therefore never knew or learned them. Python is the new Perl, not sure what the new awk is.

>Python is the new Perl, not sure what the new awk is.

Red, said sed.

Unfortunately, the reason they probably chose their own solution is that it was probably the easiest way to get it into production in a repeatable way in their mind with the least risk they would mess it up.

My guess is that he's taking issue with this argument that I'm not quite sure was made:

"The market is flooded with people who cannot code, therefore it's easy to find a job as a junior engineer"

The market could in fact be flooded with people who cannot code (I don't know for sure). Assuming that's true, that doesn't necessarily mean it's easy to get a job as a junior dev (speaking from someone on the interviewing side).

On the market being flooded, I think it varies greatly depending on where you are and whom you are with. With my current job I am part of a competent team of smart people but on my last job it seems that IQ was in short supply, for candidates, vendors, and even our "partners".

Even though the last job ended months ago, I'm still trying to unconvince myself that everyone in this world is stupid and incompetent, because that was what it felt like.

Yeah totally. I have a friend who mostly works with the IT in big banks and pretty recently he told me he had to explain what "Git" was to a more senior eng. That was shocking to me but then again maybe I'm too steeped in webdev.

This company I'm working in right now has recently migrated from CVS to Git. Still stuck in XML hell though. And nobody understand the ginormous Ant build script.

The market being flooded with poor talent may even make it worse than it being flooded with good talent. Companies now need to invest a lot more time filtering out the people who can't code to hire junior candidates. Instead companies may just decide they will invest that money in the salaries for mid-level and senior engineers instead of time spent hiring juniors.

> I no longer believe this.

You should try interviewing "software engineers" that claim to have 10 years of experience architecting and coding in various languages and cannot write a function that doubles the value of each number in an array.

You should try interviewing as a software engineer with 10 years experience. They never ask you to double the value of each integer in an array. They ask you to find all matching subtrees in a binary tree, or to find all sub-matrices in an NxM matrix with a positive determinant in a matrix of arbitrary size, or find all words in a dictionary that can be constructed by concatenating other words in the dictionary.

The easiest questions I've been asked are unimaginative but straightforward things (build a binary tree, print inorder, find all permutations of a string, code a hash map).

There's also a particularly pernicious trend toward asking for on-line assessments or homework assignments, things that save the hiring company time but put an even greater time burden on the applicant.

I'd say "cracking the coding interview" is a good reflection of the kinds of questions you need to be prepared to answer in an interview, and they are miles away from doubling the value of each integer in an array.

I think this is why there's such a disconnect between us. You do see self-described software engineers with 10 years of experience who can't do fizzbuzz, I really do believe you. But we (the applicants) never see this, instead we see a vastly higher standard applied. Which would be fine if the companies acknowledged that they are having trouble hiring because they're extremely picky. But instead, we hear people claiming that there's a "shortage" and that they can't hire because all these supposedly senior people can't code fizz buzz.

Which would be fine if the companies acknowledged that they are having trouble hiring because they're extremely picky.

Exactly this. I'm mid-level, trying to switch jobs. Several front-end javascript positions I interviewed for asked me anything from pretty tough algorithms to "how does Angular do namespacing" to object-oriented questions relating to Java to how to style a page and add event listeners to it without ability to reference the docs, etc.

The questions per se are not undoable, but the the sheer magnitude of the corpus they can ask questions from is what's so difficult. I accept this and try to cover as much as I can in self-study and outside courses, so I can better in future interviews. But it is a substantial burden timewise, and seems to be of diminishing marginal utility regarding actual, on-the-job performance, which is pretty annoying. Oh yeah, and then they reveal that they want to pay me $75k per year for a mid-senior position, in California. I know people who make that starting out of college as Account Managers for bigger CPG (consumer packaged goods) or pharma companies, with a company car and cell phone. (Granted, I think those jobs would be boring and also at-risk over the long-term, but the time spent/compensation difference seems out of whack.)

If there really were a shortage, companies would check for fundamentals but relax their standards and offer more on-the-job training for candidates. And wages would be significantly higher! Should get rid of H1Bs as a start, and see if that helps.

Amen on getting rid of the H1Bs! Not only would doing soclear out the deadwood, the improvements in skills, capabilities, communication ability, and critical thinking would dramatically slash the true cost of software development.

I've worked with amazing H1Bs. The problem is the great ones are always underpaid and by the time and the bad ones are encouraged to do anything to keep their jobs because their entire future is on the line.

I don't doubt that you've had poor interviewing experiences with companies that ask you to do things that are not representative of the job you're interviewing for. This is a well-known problem in our field, and as a fellow engineer with 10 years of experience, I've also encountered it.

It's also not my point at all.

The comment I was responding to was advocating that there is a myth surrounding the flood of people who don't know how to code. This is not a myth.

Doubling an array of integers is one of the easiest questions I can possibly think of, and use it to build interviewee confidence as a warm-up before diving into pragmatic questions related to the job.

Unfortunately, there is a not insignificant number of candidates who claim experience and yet are unable to write `.map(x => x * 2)` or use a for loop.

I'll agree, you were making a more narrow point that there are in fact a lot of candidates who can't do extremely simple coding exercises (I agree about that as well)

This assertion is often mis-used (a slight of hand to resolve the question of why companies reject so many candidates yet claim that anyone competent will find "100 companies that will hire you today".)

However, you were not making that second assertion, you were insisting that something that is real is not a myth, fair enough.

I've seen both sides a number of times. Even when interviewing specifically those coming out of code-camp style organizations, there's probably 2/3 that never did anything in terms of discovery beyond what they were assigned. I'm not saying that anyone has to spend all their free time coding, but a bit of passion when starting out is the single best indicator of how a junior level developer will perform.

This other is title inflation where someone at junior-mid level has a senior title after 2-3 years of experience. It's all over the map. For every good developer, I've seen 2-3 bad developers. For every 10 good developers, you might get 1 great developer. For every 2 great developers, 1 has a personality that doesn't work well with others.

It's a challenge to build a team where you need to balance ability, room for growth with need. I also agree that the hiring practices outlined in "cracking the coding interview" are excessive for most environments. Most line of business applications will use tooling that abstracts some of the more difficult challenges. Cloud environments offer services that take care of many of the rest. In reality, there's more need for someone to have an understanding of when you might use a given SQL variant, Mongo or Cassandra (or any number of others), vs even thinking of creating your own systems.

In general, for "senior" javascript developers, I ask a single question. Something that's in every JS book from beginning to advanced that I've ever seen. And less than one in 10 give a complete answer, and less than half get it half right.

What's the question?

I like to ask them to explain either the concept of closures in javascript, or how `this` works.

I don't even need them to know the word closure, knowing why you can't reference a variable written inside another function, the difference between var and let, or what does bind/apply do.

What are the values that equate to false in an if statement?

false, null, undefined, NaN, "" (empty string), 0

Bonus: An object with a toString() method that returns one of the above won't evaluate directly, but will roughly equal (foo == false).

sometimes I'll ask for a function that returns input as a whole number or null, if it's a string, attempt to parse base 10, return null if invalid, return null if the input isn't already a number or a string. 0 is usually what will trip people up.

Doesn't an empty array also equal false?

Isn't this basically atoi? Which has a lot of edge cases.

pretty much... the main one I tend to ask is the 6 falsy values, clarified as needed. The responses tend to be a good overall indicator of how well the person knows JS.

How does it indicate how well someone knows JS? That's the type of question you can easily Google.

Not to mention in general Javascript does some pretty not intuitive things with objects: https://archive.org/details/wat_destroyallsoftware

Well, if someone googles it in a live interview, they're pretty much out. It's not the ONLY question I ask, but will guide where the rest of questions come from.

It's (knowledge of falsy values) been a very representative indicator of how well they know the language itself. It's not an indicator of understanding software as a whole, or a given UI framework or library.

> You should try interviewing as a software engineer with 10 years experience. They never ask you to double the value of each integer in an array.

You shouldn't extrapolate your own experience into "never" or "always". I have twice your experience, and I've had insultingly simple questions like this. Amazon asked me to do fizzbuzz, for crying out loud.

we ask almost everyone the same thing, which can be resolved to one of the unimaginative but straightforward things above, but is not necessarily obvious at first glance. We fail the people who evidently can't code, not the people who fail to resolve it to the magic answer.

Well, it's pretty common to have 10 x 1 year of experience. Lots of jobs require the repetition of a relatively shallow set of skills.

When I started my current job I remember the announcement said something like 15 years experience and I thought "I've been doing lots of things for a long time, but I don't feel like I have 15 years experience in any of them" at least no the same way someone in a more stable domain might...

I've been interviewing several engineers over the last year, for the first time ever. It's _amazing_ how right you are.

I would look at a resume and think "wow this person is gonna be amazing". And then I would ask them very very basic questions, and they would get them wrong.

I still don't know what to make of it, because it doesn't make any sense to me.

I just want to thank you for your perspective.

I'd also add that "junior" can mean very different things for different companies. A junior engineer at Google could very well be "mid level" or even "senior" at a different company. Maybe even a CTO at a startup.

The industry is still relatively new and I think we're still in the early stages of grappling with how to best match programming expertise with company needs.

I've personally worked with a number of "web developers" who can barely code HTML/CSS. They tend to fall into two categories, people who use Wordpress themes/plugins to take care of everything they need, and people who outsource cheap programmers to do all the coding for them.

I don't know exactly how common either is, but I've run into both categories multiple times doing freelance work.

I agree with you. I code a lot at my current job as a network engineer. I use logic in just about everything I do - that being said, I'm actually really good at what I do and I consider coding and evaluating really old code to be my strong suit, among other things. I certainly couldn't do some of these 'tests' I see people talking about - such as import a CSV and convert it to a JSON file then upload it to github...If I sat down for an interview and they asked me that, there's no doubt that I would fail. I guess I'm lucky that I like my current job.

I'm skeptical of that trope also. I remember that stack overflow fizzbuzz post, but I never encountered a interview candidate so bad that they couldn't program fizzbuzz. I've also never been asked to do anything as basic as code a fizzbuzz example in an interview.

Most people seemed to have workable skill levels. A pretty good portion of people seemed to still be in the novelty phase of programming where they would be slightly too excited and surprised at themself, and perhaps slightly unconfident, in answering a fairly basic question correctly.

> I never encountered a interview candidate so bad that they couldn't program fizzbuzz

Me neither, in the real world, but I have seen a couple of excruciating mock interview videos where the "candidate" was unable to complete the fizzbuzz task. I think this might be a result of people thinking that learning to be a developer involves following along with video tutorials on Udemy, and that as soon as some threshold is reached, they should be ready to look for work.

By now, I think fizzbuzz has been around enough that people know it, have heard of it, and prepare enough to solve it. I have started using variations of fizzbuzz or additional questions that builds on it and I find myself catching people who only know the fizzbuzz portion.

I’ve done a version of the fizzbuzz test when zone I interviewed someone - write s function that returns true if a number is even false otherwise.

Even after I explained what an odd number was they couldn’t do it.

>Six months sounds like a lot

No, it does not. Learning new skill from scratch takes time. You're trying to master 2 new, orthogonal, in some sense contradictory skills: web development, and self-promotion (to find your place in "the job market"). Take a deep breath.

Considering how little I knew after a 4-year Bachelor's degree, 6 months of nights and weekends is insignificant.

I don't think it's directly comparable.

There's a difference, and not insignificant, between "learning everything for CS degree" vs "learning what you need to get hired as a web dev".

But I'll agree that 6 months is not that much time in the "learn new career skills and find a job" timeline. I spent around 18 months of nights/weekend practice and learning, followed by 3 months of interview prep before I found a job and that was with a big spoonful of luck.

To OP - this is a marathon, not a sprint. Get used to learning things on your own, you will be doing it for the rest of your career if you make the switch.

> Get used to learning things on your own, you will be doing it for the rest of your career if you make the switch.

Cannot second this enough. As a developer, there will always be new tools and technology. More room to grow into adjacent development. And more line of business knowledge to gain. I can't think of any other field, that has more lifetime learning involved in it.

My brother-in-law was doing a Master's in Chemistry. In May 2018 he knew next to nothing about CS. In November 2018, he landed a junior data scientist position at a prestigious healthcare company.

Granted, he's very smart and basically coded all day for 6 months, but I'd say it is possible for a motivated individual.

I always say that motivation and self-drive account for far more in terms of success with software development than anything else. In the end, it's the guys that figure stuff out, explore, research on their own that you want to keep around.

To be fair, considering how much actual programming I did in a 3 year Bachelor's degree, 6 months of learning programming could be plenty significant.

Which isn't to say the non-programming stuff in my degree was irrelevant, but you don't need to spend 4 years full time studying to learn relevant skills for a junior web developer job, and you could easily learn them in less time outside of a degree.

Think about it this way, its less about learning everything you need to know, its learning enough about learning that you can learn the minimum and then learn even more once you pass the bar.

Anecdotal data point, it took me a little over 3 years of nights and weekend learning to go from zero programming knowledge to a full-fledged coding job. That included interim positions where I was using code to solve problems (VBA, R, and SQL especially) but was not a professional coder.

As a sibling commenter said, define web developer first.

I can see two viable, yet very different definitions:

1. Frontend web engineer: Versed in HTML, CSS, modern Javascript libraries such as React, Vue, Angular. This is a programming role first and foremost, better paying than #2, and what I would suggest focusing on.

2. "Classic web developer": Versed in HTML, CSS and just enough JS/jQuery. Knows the inside out of some CMS such as Wordpress. Not recommended, yet there are a TON of small companies and clients that just need a small website or ecommerce site. A friend of mine fits this role, I wouldn't define him a programmer by any stretch of the word, yet makes a living adapting Wordpress or Magento into functional websites.

It is weird that you consider frontend frameworks programming but CMS frameworks might not be. You could fudge your way through a React tutorial just as much as someone could a Magento tutorial. It's the person not the tools that make you a programmer.

Magento is a fairly complex platform too. It uses lots of very formal software engineering paradigms joined together in a well thought out framework. I would consider it a bit more traditional programming than Vue or React, and if I had a general programming role to fill I would sooner hire a Magento only backend dev than a React only dev. React/Vue are very specialized frontend tools and working with themm doesn't translate all that well to general programming.

I might agree on the reality, but the market rate of pay for React programmers is considerably higher than that for Magento, whether this is fair or well advised or not.

I can't argue there. Career wise, React is a good choice. It is a really cool piece of technology too. I have been very resistant to the new hat frontend frameworks, mostly because I had a strong methodology for frontend UI already and there was no sense throwing it away. But even I put React in my toolbelt recently.

React was the first front end framework that felt "right" to me. Of course, I was a fan of templating with E4X (which never gained support outside Adobe and Mozilla).

I really like how you defined these roles. #1 pays more these days and startups and sf companies want actual front end engineers. But there is still a world of work out there for the classic web developer or "web designer" as we used to call them. In every town and city you have small agencies and web shops building a range of smb to mid size sites. Squarespace, wix and some wordpress plugins are chewing into this market thou.

If you're trying to categorize web developers then you really need to mention back-end development as well.

3. Full-stack web developer.

4. Back-end web developer.

Bit elitist - the trouble with 1 is they can produce pretty one page sites which then suck when crawled by search engines and 90% of websites out there depend on search.

If you're hiring #1s to build static web pages you're lightning money on fire.

If you're hiring #1s to build SPAs, when all you need is some static pages, you'd also be lighting money on fire.

It's realist. One pays better than the other.

I consider myself a web developer (that's how I introduce myself), but my definition would be:

3. HTML, React/Vue (and related libraries like redux/vuex), CSS, SCSS, JS (including ES6+), JSON, REST, Node.js, Webpack, Babel, Python/Java/.Net/PHP/etc., SQL, Postgres/MySQL/etc. DDL/DML, Git/SVN/etc., Apache/NGINX/etc., HTTP/HTTPS, Let's Encrypt, Linux related technologies (SSH, BASH, etc.), etc.

How about "web developer who thinks heavy client-side frameworks are a bad idea"?

You can think however you wish - and I agree with you - but if you want to be competitive in the modern job market as a web developer, you have to be fluent in client side frameworks.

I agree that having that tool in your toolbelt is important - it's not want the parent post was saying. He was arguing that you're either a Wordpress "not really programmer" or you're a front-end "big-framework-first" developer.

As someone who's neither I rather disagree.

I don't know any front end frameworks either. I know Javascript, Bootstrap, and HandleBarsJs for template and I have done web pages knowing only those.

But no one would ever hire me as a "front end developer" or a "full stack developer" without knowing one.

This depends:

If you're advocating for traditional server-rendered websites (perhaps with very small bits of interactivity via JS), then you're #3: A backend developer.

If you're suggesting building a complex client-side app, just without a framework, then I reckon that this is just a variant of #1. But you'd better be a very experienced developer, or your code is going to be a complete mess. This isn't really a viable path for a new developer just starting out.

It's all about using the correct tool for the job.

Define "heavy." Right now I have react, material-ui and a handful of libraries in an application with an initial load (through main entry point) under 80k gzipped, and under 300k total load (1.6mb in memory, which includes app configuration data) when you navigate through to an area with graphs. This also includes SVG manipulation and image overlays.

In terms of what is being done, I'm far more judicious with removing unnecessary libraries. I've followed up other developers removing any number of modules in favor of hand-crafting from baseline modules. Since it's JSS it includes semi-dynamic styling that is based on async loaded modules. ex: if you don't go onto a chart/graph page, you don't get those modules.

It really depends on your tooling, knowledge and what your needs are. IMHO it's far better than typical jquery + bootstrap + bootstrap extensions that many of those who look down on client-side frameworks lean towards.

I'd go so far as to question the experience of someone who doesn't see value in React or frameworks similar to it for web applications. There's a large contingent that advocates for bare-bones JS development, but minimalism for the sake of it is not worthwhile.

It's all patchwork on top of JavaScript, though. Another programming language like Elm, or something that compiles to WebAssembly, may be another option to consider.

> minimalism for the sake of it is not worthwhile

It is entirely possible to dislike React for being React, rather than for the fact that it's not minimalism. I have to work with React, and it's a constant source of pain for me.

What do you dislike not just about React, but categorically about that style of frontend development in general? Framework specific distaste I understand, but general philosophy wise I don't.

Minimalism for the sake of good battery life and low website latency is quite worthwhile, though.

If your projects are simple enough that using a framework is a bad idea it's a waste of money to hire the #1 types.

It's this binary distinction I'm objecting to. Is the choice really "Wordpress" or "React"? There's a huge number of projects that don't fit either of these templates very well. I'd still argue that people building web "sites" (which can still be way beyond the complexity sweet spot for Wordpress) rather than web "apps" should not be building SPAs.

That is basically what he lists under number 2, "classic web developer".

Not necessarily, since someone would need to build the server backend for anything more complex than a static website.

As other people have noted, classifying "web developer" as "frontend web developer" is a bit restrictive.

You do not mention why you think number 1 would be better to focus on. There are more number 2 jobs available, depending on your location, there might only be number 2 jobs available. These jobs also require less knowledge and training and therefore can be attained more easily. I see a lot of advantages for the number 2 jobs for OP.

There's also a third definition: 3. Web backend developer, who knows the inside out of some framework or language such as Laravel/PHP, Django/Python, Rails/Ruby, or node/ECMAScript, and focuses on writing server-side logic for the frontend guy to consume. Also look at C# or Java if you want to get into the enterprise market.

You're not going to find this kind of developer in a run-of-the-mill WordPress shop. You probably won't find them in the latest startup that is all on the serverless bandwagon, either. But there are quite a few of backend positions in larger organizations where you might coincidentally find better pay and job security as well. Bonus points if you're well versed in security, or know how to talk to the database guys over there.

I personally can't stand doing number 2, and I do as little of number 1 as is necessary these days, but that said...

there is a ton of room for number two still. Maybe not in the heart of Silicon Valley, but other major cities—sure. There are a ton of businesses operating using WordPress as their primary platform because it's relatively easy for non-technical or semi-technical users to wrap their heads around.

Here in Toronto there are a lot of thriving WordPress/PHP-stack shops that service those businesses so that they don't have to hire their own web team. I would never want to work with one because I personally really don't like working with that stuff. 100-foot pole sort of situation— but they're there, and they pay okay for the local market.

#2 is still in demand and there are a ton of boutqiue-type firms that make good money by keeping some old Typo3 CMS site alive. However, from a developer perspective, you should aim for #1. It pays more and in worst case you can downgrade to #2 rather easily .

Hell yes! Just don't try and be the guy making 3 page info sites for your local gardener/bakery/whatever. There's simply no money in that, as they can do that themselves for free with an online website builder, so the value add from a good dev is minimal.

Once you've honed your skills, focus on the more complex, bespoke projects. Become good at delivering on time and try to find clients that wish to invest in tech to improve their business further. They will generally appreciate your work more and will not hesitate to pay you good money if you're genuinely adding to their bottom line.

> Just don't try and be the guy making 3 page info sites for your local gardener/bakery/whatever.

This, THIS! Many web devs do a bit of this starting out and that's fine... just don't try to make it into something more, not only because it's worthless and the clients will drive you nuts by chasing them for petty bills but because you will also get bored out of your mind. Get involved in, or start a more significant project as soon as possible (Even FOSS for no money is better for your experience than wasting more time on these).

Completely agree. Doing a few of these is fine, but for most people, it'll get pretty boring pretty fast.

Add in the business side - finding clients, chasing bills, and the small 3 page sites won't be making you any money unless you have an army of developers churning them out.

Personally, I see "Web Developer" as a skillset worth knowing, not an industry to be in. Use small gigs to learn HTML, CSS, Wordpress etc - but branch out. Contribute to some FOSS JS/PHP/Ruby/C#/whatever libraries, build some sites without WordPress or similar, and angle yourself towards being a web developer at a company who tag line isn't "Web Development" (or digital marketing!).

All that said, I know there are people who LOVE the 3 page site work. So maybe that is what you want, but it wasn't for me :)

>> Just don't try and be the guy making 3 page info sites for your local gardener/bakery/whatever.

The main problem with this is these days it's so easy to whip something together with Wordpress and a template, and many web hosting and domain purchasing sites even offer extremely simple ways to set these types of sites up.

Quite frankly, it was never that hard, but these days the value proposition is practically nil.

> as they can do that themselves for free with an online website builder, so the value add from a good dev is minimal.

And on the opposite side, it is quite easy to start a business of creating websites using those tools with minimum knowledge. I know a few people who started from that and eventually moved to more complex projects.

Web agency owner here.

There is a surplus of beginners due to a surge in tech bootcamps.

If you're in the bottom half of talent it's a race to the bottom of low cost.

If you're top 25-50%, you'll probably have consistent good paying work.

If you're top 25%+ you can make a great living.

Probably similar to any skill set.

From interviewing from bootcamps, I can mostly agree. I find that those who put in more effort beyond the assignment minimums tend to be those that have worked out the best.

Yes, it is. I spent 8 months studying web development and I am now one year and a half in on my first software development job. I can see clearly tons of opportunities in the future.

My 8 months of studying were full-time studying (freeCodeCamp and plenty of small projects). 6-8 hours every weekday.

Not sure what you mean about "solid path", but you have to have focus.

edit: these are my tips for becoming a frontend web developer, which was my path.

First, learn the essentials of CSS - don't aim to be a CSS wizard because that won't help you get your first job on good jobs (the ones that are not on agencies where your sole job is to transform photoshop images in HTML).

The most basic and true advice is to focus on learning Javascript properly and deeply. Read books (EloquentJS for starters is a good one), read documentation, watch videos (Fun Fun Functions youtube channel is a nice one), practice on code-on-the-browser platforms (I am a huge fan of freeCodeCamp) and create some projects of your head using Javascript only.

At least 3 (full-time) months on Javascript only. Then, move on to focus on React, because that's where all the jobs are going. And I say this being hired to work with Ember on my first job (and I enjoy Ember), but pragmatically, React is the way to go (assuming you have learned Javascript properly before).

Also, pay attention to good software development practices (The Pragmatic Programmer is a good one) that are not about language syntax (e.g. coherent indentation of your code, good variable and method naming, how to make code more readable and maintainable). Become what in the United States they call "an engineer" with certain glamour on it. You don't need to buy the hype that software engineers are a special breed of people superior to all others, but do make an effort to learn best practices, design patterns, clean code and all that.

Don't get into any tech discussions in forums, flamewars, don't take sides, etc. This early in your career you should focus and be pragmatic.

Summary: Learn the essentials of HTML+CSS. Focus first on Javascript, then on React. Create your own projects and learn what good development practices you should use on them.

I wrote a few blog posts of my learning and career change to web development, you might find them helpful: https://rodrigohgpontes.github.io/

Web dev is a better career choice than ever. Services are developed enough that you can just connect to one another without having to custom build anything. Frameworks have become complex, creating a kind of entry barrier where dedicated developers can make good money. You can also go deeper down the optimization path if you want, building things like better compression systems or more efficient ways of pulling information.

Yes. There was a story on the front page also, just a couple of days ago

Start with a Website, Not a Mobile App https://news.ycombinator.com/item?id=18824993

Did you read that article? They actually say when to NOT do a website first.

I found their web-first arguments mostly unconvincing. And kinda hand-wavy on certain points. Two relevant points, rapid MVP development and instant updating of your app I have to agree with. But the idea that desktop software pricing translates to people being willing to pay more for a website is a crock. People think websites should be free. It’s not just users who think that. I have to educate my clients why their business app that needs a login, data storage and access controls is not “just a website” and why they have to pay me significantly more to make it happen.

People say that web dev (the javascript/react/python/c#/java) fullstack kind is boring and mundane. But what else do people actually do? Sure, there's ML and embedded work but aren't most engineers doing CRUD work anyway?

There’s big data which is like crud mixed with systems programming and some data structures + algorithms. And there’s of course regular systems programming too.

At certain companies there are definitely people who get paid to write compilers or develop frameworks (for any which thing), operating systems, backend cloud tech, robotics, etc. but it would probably be seriously hard to break into this without a CS degree or relevant experience

I agree that most modern programming work boils down to “put this into the database, take this out of the database”. Probably the biggest exceptions in terms of job numbers are embedded, which often requires an electrical engineering degree, and game development.

Is ML even a programming job?

I see it more like data science, 10% programming 90% math.

Edit: 3% programming, 30% math, 67% scrubbing data. Thanks for the correction shortoncash. :)

Most ML jobs are sitting around scrubbing data. The fun math part is like 5% of the job, and usually there's some guy (or a small handful of guys) that's a PhD who is hired to do all of that because he was in the research area before he left academia.

I could be wrong, but this is my experience.

Agreed. We call that team "operations research" and they are all PhDs. The ML devs build the pipelines and deal with engineering concerns around having/moving/securing lots of data.

That too. So how is all computer science not 'web dev' and not a viable career choice? Assuming we are talking about the "right" kind of web dev, I guess.

I think there's a general misuse of terms like AI, Machine Learning, Data science and Data engineer. ML is the new "Big Data"

I don't understand how is this a question? Do you really want to learn it because it seems to me that you are trying to find a bogus reason not to... no offense, but if you don't like it, you shouldn't pursue this career, otherwise the simple answer is there is huge demand and good salary for Web Developers.

Yes, it absolutely is. Learn full stack and go work at one of the web tech giants. (There are obviously other options, but I mention the tech giants because the salaries are very lucrative.) This usually means understanding data structures and algorithms so you can get past the interview questions.

Aside from tech giants, the web is probably one of the most used interfaces ever. There a tons of business opportunities online. Just about every business is participating online. There are tons of jobs here.

I specialized in computer security and am basically doing web development at a major tech company right now. It's kinda sad but I like money.


What you're missing is three fold...

1: Where do people hire freelancers.

2: Sales skills.

3: An alternative to worrying about 1 and 2.

1. Create a profile and Upwork. While everything you'll read about Upwork will be negative you need leads. Upwork gets them for you and yes you can create your own website and start there but Upwork already spends a ton of money on ads / SEO and content marketing to keep generating leads. Take advantage of it.

2. Learing how to sale is critical for everyone, especially web designers and developers. Go down the YouTube rabbit hole and got to Amazon and search for sales books. There are a million ways to sale things so read the first chapter of each book and read reviews until you find something that sounds like you can feel comfortable using with clients.

I recommend Jonathanstark.com, Doubleyourfreelancing.com and read How to Become a Rainmaker: The Rules for Getting and Keeping Customers and Clients

3. Alternatively you can skip the above and do one of the following. Subcontract with a marketing agency that needs to hire a developer. Find them using Google and could email them. Tell them you will lower your rate since they're getting the clients and that you don't like sales.

Finally you can hire a sales person on 100% commission to find clients in need of web development and if they ever find a client that doesn't match your skill set outsource the work using your same Upwork account. Upwork allows you to not only freelance but to hire as well.

The sales person should get 50% of the project costs upfront to start and upon delivery the client would pay 50% when completely satisfied.

Pay the sales person 20% to 30% of the project or agree on a fixed fee. They don't get paid if they don't find a project for you so make sure and hire many salespeople.

Finally if you're smart (which you seem to be) don't worry about knowing everything before you jump in. I've been freelancing since 2004 and run into new technology I have zero clue about. Howler I simply read the documentation or watch videos and boom new knowledge.

Start now and be confident in yourself!

If you are worried about Upwork's reputation, choose Toptal instead. I have no connection with them other than having worked with freelancers from them a couple of times. They've been great. I have also come to know one of their devs personally, and he had only good things to say. He is now employed full time by a company for whom he used to work for through Toptal.

However, having six months of experience, Toptal might not hire you. As someone already posted, I'd advise you to find a team and gain some experience. Having a deadline, and a customer with very high expectations - perhaps set by your initial promises - is sure path to a very stressful worklife. Don't do it.

Toptal is taking 50-100% of your rate as commissions according to my estimations. Do you think it's reasonable?

How would you go about finding a salesperson?

Totally. Web is still a very dominant platform and will remain as such. Even mobile platform vendors like Google seem to support (and even promote) web as a first class choice for delivering content and apps on mobile devices.

Also, web development can be a good entry point to get into software development in general. You'll inevitably cross paths with backends that power the web and can grow into a backend developer as well. Also, today developing for web frontends and native mobile/desktop apps is more similar than ever.

My advice, as a full-stack dev (laravel on backend, vue(mostly) on frontend) -- learn and become a javascript master. Learn react and vue. Learn everything there is to know about es6+. Learn to use react native and/or nativescript to build mobile apps as well.

There are a lot of php/laravel jobs still, but JS seems to pay more, and it's everywhere - the # of jobs out there for frontend or full-stack js devs is crazy. Plus with JS you can do backend and frontend.

One thing you might do to get started is find a mentor, or partner with someone and just start building stuff. Tutorials are shit (except when you need them to solve a problem). You can't just learn to code following a book or guide or video. You've got to get your hands dirty and 'tinker' with things. When you try to do something and can't figure out how, then you'll go and watch tutorials or read stackoverflow threads.

Everytime you break through these 'walls', is when you level up your skills and reach new heights as a developer. I've been doing laravel since 2013, and Vue since 2016 and I'm still learning every day.

Every time I see older code I wrote even 3 or 4 months earlier, I cringe at how ugly it is and could be improved with what I now know. You have to love learning though to be a good dev, because you'll be learning/googling your way out of problems for the rest of your life or until you build an app that brings in residual income and lets you retire.

> realistically it has been a few solid weeks of learning since it is a side hobby that I hope will turn into my career

This is great -- people tend to quickly get good at hobby skills (as those are something they like and do voluntarily). However, a few weeks of learning is not nearly enough to get a taste for what a job there requires / involves and especially decide whether you will like what you do for a hobby as a career. I suggest two paths, pick one that you like most:

1. Pick something cool you can do as a "web app" and do it. Repeat 3-5 times. Don't worry if there are 50 existing options to do it, you are learning. But the end result should look good to you -- that is to be something you would enjoy using or showing to friends. Some examples: generate a beautiful ready-to-print PDF calendar with custom something (birthdays, vacation pics / links, etc); take a photo and make an STL file ready for 3D printing a coin (render on display, allow some options, etc.); capture and analyze OBDII data from your car; etc.

2. Find where others doing the type of development you want to do hang out (meetups, etc.); buy them beer and ask what they did, what the job market is, what skills you would need. Tell them that you did it as a hobby and wonder what the job market looks like. Many folks would gladly share wisdom or even mentor if they feel it is useful and appreciated.

Good luck and have fun!

> Is the Web Dev job market in a good enough state

There's a lot of demand for devs across the board (this is my gut feeling from participating in hiring at my current company). This probably varies a lot across teams in a company, across companies in an industry, and across industries.

One strategy I recommend is to narrow down your target employer market so you can get more specific answers. What industries are you interested in? What are some companies you might want to work for? Do they have an engineering team (most likely). Then figure out what roles they have open and do your best to position yourself for those openings once yo u start interviewing.

> that I should risk more time and money?

What kind of self-learning have you already done? Can you give us some information about the courses / tutorials you've been following? Is this something you find yourself enjoying?

More details about your situation would help. For example, if you've mostly been following a coursera course for the last six months that's heavy on the theory side, I might recommend that you spend more time with something more hands on like building a web app to solve a problem you have.

Yes of course. Define web dev tho. It's a broad field. There are plenty of gigs out there if you focus on JavaScript and it's frameworks, python, go, Ruby or node.

Python, go, c# and Java can open 'enterprise' doors for you.

Curious about Go in enterprise web development, have any widely established companies gone full in on Go? Like migrated from Java or other stacks. I'm mostly a C# / Python web developer at my current job, and I'm diving into Go. Might even start suggesting it for future projects to see if it gets approved once I feel reasonably proficient in Go that is.

Recently a headhunter told me a couple of large companies have switched departments entirely to Go, in my area, but only hire people who "are really into Go", meaning lots of experience and knowledge. The companies, iirc, were Monsanto (now Bayer) and Mastercard.

Go still seems pretty niche here. Even the companies you mention are still mostly using Java, but I do know of teams using Go on certain projects at those places.

It depends on what you mean by web developer. That used to mean taking mockups done in Photoshop and turning them into HTML. Today that narrow role on the team is often outsourced or does not pay very well.

If by web developer you are referring to what many now call a "front end" developer then yes, that field is very busy and can pay quite well. Front end developers are expected to know a popular JavaScript framework (such as React) as well as CSS and HTML. Front end development is a dynamic and exciting field. I've been in and around "web development" for roughly 20 years and it is quite fun and has quite the future ahead.

Just last week the top trending article on HN was about how you should start with a web app instead of a mobile app. Today there are really powerful and much easier to use frameworks than what we had compared to just a few years ago. I say, if the web truly interests you then dive in head first and pour your heart into your work and most of all SHOW YOUR WORK publicly so people can find you and know you. That's how you find great teams.

> Six months sounds like a lot but realistically it has been a few solid weeks of learning since it is a side hobby that I hope will turn into my career.

The problem with the Web Dev job market is that everyone and there dog is doing what you are doing. If you want to be taken seriously you need to set yourself apart from this crowd as a professional developer.

Been a web dev for 20 years.

Yes, but work on learning the full stack. Learn frontend, backend, SQL, sysop. Can you set up a server from a base image and eventually have a full app running reading from a database? Great! Now get familiar with cloud solutions like AWS. That might sound daunting, but it's actually easier in some respects. You don't have to know everything before you get a job, but knowing a little of all will show great promise in an interview.

Don't get attached to any one technology or programming language. This field changes all the time (annoyingly so). There was NOSQL, React, Node, hell I remember the times before Memcache. So keep your eyes and brain open and be ready to adapt. Your current place of work will likely stay stale with whatever they have, but if you don't keep up with the outside world, finding your next job will be much harder.

Don't focues your education on single frameworks, take your time to learn the basics. For example:

- Don't just learn Django, learn Python

- Don't focus on React, Vue, etc. learn JavaScript

Those skills will last longer and make it easier to transition into other roles if front-end doesn't feel right for you at any point in the future.

In theory I agree. But learning something just well enough to get your foot in the door as a junior will have immediate rewards and then you can learn more deeply.

Absolutely, I agree. But don't get lazy then and really take the time to learn the basics. Aside from all the webdev focused MOOCs and courses on the internet there is plenty of stuff about Computer Science theory and whatnot available, so the opportunity is there.

> But don't get lazy then and really take the time to learn the basics.

Here was a typical (not verbatim) exchange when I was a Front-End Architect interviewing candidates for my team back in 2012 or so:


Q: Tell me about your experience with JavaScript.

A: I know JavaScript because I've been working in jQuery for a year.


Further questions would isolate the fact that they've _only_ used jQuery. It was depressing, really.

I mentor developers to really strive to learn and understand the fundamentals precisely to stop propagating the idea that libraries and frameworks > fundamentals. Problem is, I've already started to witness history repeating itself when interviewing candidates and getting the equivalent answer above--but with "React" in its place.

I’m your prototypical computer geek - started programming in the mid 80s in middle school in Basic and assembly language, got a CS degree, bit twiddled in C and C++ for over a decade, but my experience over the last decade, makes me doubt the need of most developers to need to focus on computer science.

Most developers will never need to solve “hard problems”. They will be working on yet another software as a service CRUD app or a bespoke line of business app that will never see the light of day outside of their organization.

I’ve found studying architecture, soft skills, and my business courses (before I dropped out of graduate school) to be much more helpful in my career.

Yes, the job market is in a fine state. If you're competent, you won't have a problem.

You don't need to spend a penny (or too much time) to learn web development if you put in the effort. Mozilla Developer Network [0] is what I recommend as a learning resource. I'd advise reading the JavaScript Guide if you have previous experience; if you don't, there's stuff for beginners there to. Learning some HTML & CSS will be most helpful.

I'd advise that after you learn JavaScript, you learn React [1]. Take the tutorial. I'd recommend watching one of the React talks to explain to you what makes React useful.

I'd advise you prefer learning Node.js [2] next, and it's probably a better choice than learning PHP or Ruby for the purpose of server-side web development. Perhaps take a look at TypeScript after.

To become a good programmer, branching out is helpful. A requirement to be a good programmer is that you have some basic level of CS knowledge (there's many free ways to study CS). Learning some C/C++/C#/Java/Rust/Go is also good, but this is not a priority to getting your initial webdev jobs. This isn't necessarily going to be useful in getting a job directly, but improving as a programmer will help indirectly.

HTML & CSS mastery is a lot less important for a web developer (as opposed to a web designer) than JavaScript. You don't need to memorize everything, but you should be able to get by with Mozilla Developer Network open for reference.

Other resources to check out: Eloquent JavaScript /r/JavaScript Free Code Camp javascript.info

[0] https://developer.mozilla.org/en-US/docs/Web/JavaScript [1] https://reactjs.org/ [2] https://nodejs.org/en/

Here are a few observations, in no particular order:

1. No one here can really tell you. They would be guessing. I would go on to indeed.com and type in the skill set you consider to be "web dev" and make note of the number of jobs and (where available) salary offering. This is the current state of the market.

2. You are asking an even more complicated question about the future state. The answer is even more prone to speculation. Your guess is as good as anyone's.

3. Although web-dev in its current form will almost certainly not be in demand, the future form will evolve out of the current form so the time you spend learning, debugging, networking will likely not be wasted. (unless we crack General AI).

I think the variable here is you, rather than the industry. Focus on being beyond mediocre and build up a small but well-executed portfolio and you will (almost) never have to look for a job again.

I know it's anecdotal but here is my story: I'm used to hearing that my friends are looking for work, and some tell me about how many applications they have sent out.

I went on to LinkedIn and ticked the checkbox that says I'm available for hiring, and I got a bunch of recruiters asking for a chance to speak with me. I'm now going to a new job where I'll earn what a typical senior exec earns in my country.

Tell me that's not powerful.

The Web isn't going anywhere as society today heavily depends on it for all kinds of solutions. Just think how many things we do these days on the Web. So with that said, gaining the knowledge to build useful applications on the Web will lead to a career in Software Engineering. Because a Web Developer's knowledge spans across many different technologies, we typically use titles like Software Engineer, Front End Engineer, Full Stack Engineer, etc.

For example, here is what a Front End Engineer might have knowledge in:

- HTML (semantic markup)

- CSS (layout, animations, responsive, mobile-first, media queries, SASS, etc.)

- JavaScript (the language itself)

- HTTP, AJAX, Promise API, RESTful APIs, async VS parallel

- DOM APIs, DOM Performance

- UX/UI methodologies

- Accessibility, ARIA

- Module bundlers, transpilers, build tools (webpack.js, rollup.js, etc.)

- Various frameworks and libraries and knowing why and when to use them (e.g. Lodash, React, Ember, jQuery, etc.)

- Programming design patterns, methodologies, and best practices

- Object oriented programming

- Functional programming (.map(), .reduce() and knowing about immutability)

- Test driven development and various testing frameworks/libraries

- Command Line (Bash, and/or other Unix/Linux shells)

- Version control (GIT)

- Data Structures and Algorithms (arrays, trees, DFS, BFS, and more)

- High or deep level knowledge of how Browsers work (the event loop, reflow/relayout, etc.)

- A server side language (NodeJS, Ruby, Python, PHP)

- Databases (MySQL, NoSQL)

- A server side web framework (ExpressJS, Ruby on Rails, Django, Laravel, etc.)

- Security (authentication, authorization, XSS, SQL injections, cookies, and more)

- Ability to deploy a product in a production environment (e.g. AWS)

- Development workflows (GIT, code reviews, continuous integration, and more)

Are you trying to optimise for what career path would be the most lucrative, or are you trying to find something you find fulfilling and enjoy spending your time on?

I personally think it's a mistake to only focus on what will be useful in the future while ignoring subjects that you find interesting. In reality, you don't have enough information to know whether the choices you make today will be optimal for your future self. In my opinion, it's best to just follow what interests you and keep an eye out for opportunities along the way.

Software development is and will be a good career choice for the foreseeable future (until software starts writing itself, which is not likely to happen any time soon). Web development is just a facet of it. If you spend time understanding fundamentals of software development you will not have wasted your time.

Two more interesting questions you should be asking yourself are: 1. Do you love writing sofware, and 2. Are you good at it?

If the answer is yes to both then you're on the right track. If not, you could have a problem down the road.

There's pretty decent demand right now in some areas, but it depends on where you're located. Here in the bay area, there's good demand in SF and palo alto, but very few jobs in the east bay and lots of talent. But, it's all relative. You should compare it to your options available. In the mean time keep learning and developing your skills, read as much you possibly can about web development and learn the latest skills as well the backbone of all web development: HTML, CSS, AJAX, javascript and jQuery. Dont forget jQuery. Not many jobs may ask for it, but it's used everywhere and you will need to know something about it. If you like, go ahead and check out my site I'm developing for aspiring web developers such as yourself: It's filled to the brim with examples to learn from (you can play with the code without any setup), taking you step by step so you don't get lost: https://codeorc.com

The advantage of learning some of the newer technologies like Vue and React are that they haven't been around for too long. So, if you get 3 years of experience with that, you can be considered relatively senior. Just something to think about if you're totally new.

It really depends on your market and what you've learned. There are plenty of jobs that involve making things to put out on the web, which is what "web development" is. But they are all semi-specialised and very few people can make a living with just basic HTML/CSS/JS web development skills.

The bread and butter of alot of "Web Developers" is Wordpress. If you learn that inside and out, you can likely find a job somewhere in a decent market. There are other CMS you can learn instead, but once you pick up one, then the others shouldn't be that difficult.

Another path is to pick up a ton of client side javascript skills (ideally combining bootstrap with frameworks like Angular, Vue, etc) and become a "front end" developer. This is relatively easy to break into, but it's harder to muddle your way through as you have to know a wider variety of skills. If you have the aptitude it can pay very well, though.

Probably the hardest to break into, but maybe the most stable, is to learn about databases and how the server works, and then go into server-side programming using PHP, Java, or javascript using node.js. I think this would involve some serious time commitment, and may be something you pick up after you get your foot in the door.

Many good points raised already, a few points I haven't seen raised:

* Within Web Dev, others have pointed out that there are many technologies you can work with, but there are also very many different kinds of output. Some web developers produce production code. Some web devs focus on producing early prototypes, and have some mix of UX Design and WebDev skills. Still others work for agencies where there is a heavy emphasis on delivering prototypes to pitch, but then the team will need to produce a production version of it. All of these start with a common skill set, but depending on what you want to do you might need more depth in some areas than others.

* While I think it is a great career choice, there is still some Computer Science elitism in some circles - depending on where you apply for jobs, you may get asked interview questions that have little to do about WebDev itself. This practice is obviously not helpful, but it is a reality in some places.

* Try to focus on getting an area of depth as well as sufficient breadth. You want sufficient breadth so that you can make it through most situations, but it's also really helpful in selling yourself as being an expert in a particular area.

Apparently, at least according to CNBC [0], UX Design is one of the most in-demand skills in 2019. Not sure about their data sources, but it's definitely a skill a good web dev should consider adding to the toolkit.

[0] https://www.cnbc.com/2019/01/04/the-30-most-in-demand-skills...

Yup. People hire people who can solve problems that create business value. Web development is and will continue to be a huge source of business value.

6 months will teach you how to copy/paste code from StackOverflow and update the code for latest $JS_FRAMEWORK. You'll get by with "just enough" knowledge for a career in web dev.

Invest your time - over a period of YEARS - into studying computer science, where coding is only a small part of the course.

Then you'll be able to expand your career far beyond just Node web dev.

Regarding getting actual work, join local meetups, talk to people that are in the business. If you can get them to talk about their work, learn from them, get better through them and get some connections, you might have a path into the business down the road. Sitting at your computer learning is not the only thing you can do to learn more about this.

Web development is probably the biggest field in software development right now. And everybody is looking for web developers.

A few years ago I made the decision to go back to school (for two years) to be a web dev. It cost me approximately $25k. Immediately after graduation I added $25k to my yearly income. There is a ton of work for web developers, and there will continue to be for some time (even if something comes along that makes web devs redundant, there is still decades of maintenance work in the market).

It may be important to clarify exactly what you mean by web developer though. I work in many different portions of the web stack every day (database, server side code, front-end code, etc). The more diverse your skill set, the more opportunity there will be.

At any rate, web is a really good entry point, and after a few years in industry you'll probably start to see different branches of development that appeal to you more. If you start out as a web dev there will always be different avenues and opportunities as your career advances.

As others have pointed out there are generally two flavors of 'web developers' and I've been on both sides. Having worked at agencies, with outsourced talent, and building web apps with modern tools; there seems to be a divide between the self-taught and the educated.

I got a BS in Entrepreneurship and Innovation and all my web development learning and experience came from my own projects or on the job. It's been difficult for me to find an engineering or product management position despite having experience (one phone interview for ~25 applications). There's definitely more I can do on my part however this isn't unique to me.

Perhaps the fact that many companies have switched to automated screening systems to filter out all the junk resumes has made it harder to get interviews? To answer your question, the need in the market is there and if you are patient, your risk should be rewarded.

For entry level web development I would take a look at PR or communications agencies. Many of them build and host custom websites for clients. Depending on the company, it can be a great way to get your first entry on your resume.

The work is not super complicated and it's often based on popular CMS software and/or frameworks, so it's easy to get going. But you'll be getting paid and working on real projects, which are what you need to start building a career.

You'll get to work with other developers and start making professional connections. Agency folks enjoy networking so you'll learn how to do that. And, jumping into a client company can be a viable way to move on to more complex work.

I'm in the DC area and basically every single agency is looking for developers right now. But there should be a similar industry in any medium to big city.

Web dev is huge and probably will be for the foreseeable future - as long as businesses need custom solutions and software, it will probably be web based. Businesses will always need custom software.

But there are a lot of people doing this work. You have to compete with them. That will take a lot more work.

There's still huge demand for these roles - two questions to ask yourself are 1) how do I stand out? and 2) do I enjoy it?

This is a great related thread: https://news.ycombinator.com/item?id=18862790#18865742

If you're interested in combining your coding skills with customer-facing/problem-solving responsibilities, Sales Engineers are in huge demand. Companies are desperate to recruit for this combo of talent because it's so rare.

I'm the founder of Flockjay (YC W19 - tech sales bootcamp that helps people break into tech, without code). We have students with coding experience who are doing incredible things - companies can't wait to hire them. Happy to chat more.

I think it's still a good market. Self-learning is hard, though, because there are a million branching paths of knowledge and it's easy to get overwhelmed or sidetracked. Especially when you have no existing skill base from which to ask "would this help me improve what I'm already doing?"

Personally, I had a good friend mentor me and point me at things to learn early on, which helped a lot. A structured program would have the same benefit.

I have no connection with it, but https://lambdaschool.com/ looks very interesting in that they bet on your ability to get a job: you pay nothing unless you do (other than the opportunity cost of spending the time to learn, which could be large).

Yes. A lot of people here forget how many lower level jobs there are out there. I'd recommend focusing on JavaScript and front end engineering if you like that, or some back end language and framework like ruby and rails. You can learn enough in about a year to get a job.

If that is a comparison question to, say mobile development, a lot of people dont install apps until it becomes their mainstream. So yes, web is widely there but be warned, famous phrase "making a website" is tip of the iceberg and I seriously mean it.

Yes it is. As long as we'll have Websites on the Internet we'll need Web developers. It is a great place to be still. I used to do that then I got burnt out by the stack, which keeps changing every 6 months.

The easiest place to start as a developer in 2019 is Web.

My prediction is that the tech industry will be resilient over time but getting a job in tech will get harder and harder. In the golden years of the web (early 2000s), all you needed was some experience and "passion" to get hired. These days, outside of specialized positions, getting a regular ol' CRUD job requires Leetcode and experience matters much less. Combine this with the fact that you are now competing with an ever-growing global talent pool, most of whom have masters/Phds and don't mind working 24/7, you can see where this trend is going.

By not taking the formal degree path, you've chosen the harder option but it's not impossible! Look to startups and freelance work until you build up a track record and preferably a portfolio.

One important aspect is that this industry requires constant learning and keeping up to date. You must make this a priority. When I started CSS did not exist and there was no front-end or back-end, you were a webmaster. I learned how to make interactive CD roms and interactive kiosks with Macromedia Director in school....

Technologies you learn now will be outdated tomorrow. Learning is a journey, not a destination. Try to focus on the larger concepts since these generally carry over across technologies.

While the terms are interchangeable I would focus your efforts on becoming a Software Engineer (with a specialization in Front End).

I say this in an era of bootcamp grads, online micro degrees Udemy courses etc. where you can now study and 'become a web developer in 3 months etc.'.

It's true, you likely can learn enough about Javascript / frameworks / etc to build web applications in that period of time, but your overall knowledge and ability to draw inferences between web dev and other areas of CS will be severely lacking.

This isn't to poo-poo your path (I myself am a bootcamp grad), more hindsight as part of my journey.

What you are doing now is what most would likely call a 'top-down' path. Build some applications, work on some projects, learn one language all for the sake of building a portfolio. This is great! But it is only a piece of the puzzle. I would highly suggest you sprinkle in some 'bottom-up' learning as well (taking an algorithms class, or something fundamental to CS) and trying to draw the connections between what you are learning in the two domains.

I know that was a bit of rambling so to more directly answer your questions and concerns:

Q: "I have been self-learning for around six months and still have not found a solid path to follow." A: It is likely that self-learning is not cutting it for you. It sounds to me like you need structure. This could take the form of a bootcamp or micro degree or something more involved (slower) and academic... like a bachelors degree with projects mixed in. All have their advantages and disadvantages. At a high level:

- A good bootcamp will require you to be there in person, with fellow students who are on the same path. You will have structured learning and so will meander less. You will leave a good bootcamp having gotten out what you put in (ie if you slacked off they will not hold your hand) but may land a job. You will have spent a good chunk of money and even if you land a job you will have to fill in a lot of gaps.

- Micro degrees (like from Udemy) same caveats as the bootcamp apply but with swings. Will likely be far cheaper, but with less support, and likely less guaranteed outcomes. I haven't looked in a while but it's rare that I find people who have landed jobs doing these programs, while I can find multiple 'good' bootcamp grads who end up at many 'top' tech companies.

- If you go the University route you will have to amp everything up to the nth degree. You will spend more time + money. The effort that you put in will also matter A LOT (ie from what I've heard some people do the bare minimum CS work to pass classes, but never do interesting projects, push for good internships etc so they graduate and can't land jobs). It, however, my belief that if done right this can be the best possible option. A lot of bootcampers severely underestimate the importance of foundational CS concepts, these will be the first people in trouble during a recession or if there is a major technology shift.

Q: "Six months sounds like a lot but realistically it has been a few solid weeks of learning..." A: Six months is not a lot of time to learn almost anything. Let alone a year, or two etc. Especially if that learning has been very undirected (it sounds like you are meandering a lot). I know you are in a rush to be gainfully employed in a new career, but you shouldn't emphasize the time you've spent so much. The best engineers I've worked with are 15+ years into their careers and still think they are idiots.

Find a more structure path for learning, and don't beat yourself up over the time you're taking to learn anything. Good learning and understanding takes time.

Q: "Is the Web Dev job market in a good enough state that I should risk more time and money?" A: Yes, the market is still quite good for anything engineering related. Frontend, Fullstack, Backend you name it. Companies need smart people who can code and understand the systems they are working on. However like I said you should develop your skills so that if the current definition of a "Web Dev" changes in the next few years you can easily move onto the next thing. That means developing a love of learning and really understanding the core concepts that tie all of these seemingly disparate engineering fields together.

If one has no prior porgramming experience, I would expect a minimum of 1500 - 2000 hours of work needed to learn the basics of the trade and find their first decent job. A small number will be able to do this on their own. The majority will benefit significantly from some structured teaching and mentorship.

I think there are many good jobs available in web development. But it will depend significantly on your location.

For me, web development quickly led to full stack development. Once you can comfortably write the full stack, you’re pretty much guaranteed to find a job doing that somewhere.

I recommend looking at job posts for the jobs you want and teaching yourself the technologies they require. Consider looking for paid internships, especially if you’re in college (even if you’re just taking some community college courses).

If demand for your skills outweighs the availability of them in the skills market, then you'll make an excellent living. So your skills need to be in high demand. Compared to the competition, either be perceived as "better" (write books, give talks) or "more specialized" and you should be able to find a market segment that demands your skills and will pay for them.

I think it totally is a viable career choice. My company is looking to hire web devs.

I feel like good web devs require a tremendous amount of knowledge on different aspects of CS, Design, UI, UX, networking, etc... The problem, however, is most people approach the role like its a job at a fast food chain. I think both aspiring web devs and the vast majority of employers are guilty of this perspective.

Web development is a good career path. We live in the golden age of programming. It's never been better to be a software engineer than now. Every major startup and web company I know are constantly looking for new good hires. I recommend focusing on either frontend or backend starting off. Full stack can get hired more at mid+senior level than entry.

"Is the Web Dev job market in a good enough state that I should risk more time and money?"

These best people building new software and need help:


The most in-demand skill is: React. [From using grep/sed excluding JavaScript/JS].

So my answer is: Yes.

grep/sed ?

I'm inclined to say yes but obviously there are many factors: where you live, where you are willing to relocating, sometimes your age, your intelligence. Do you actually like the field? I think it's a good career most often than not but it's not always easy.

I think these days, the only viable career is as pornstar or a pet. And for thoss you must have been born as a dog or a cat. All other Jobs seems to be in decline because of globalisation or automation.

But, of course can you still make a career in nearly everyting where there is demand, and for webdev there is demand. The question is whether your skills can match the demand. And frankly spoken, six month's is nothing, especially if it's just learning, not actual work.

The base-level of learning for solid software development is usually measured in years, and that would be 30-40h/week of real learning. But there is also the student-market where you can earn get some pocket-money for low level-work. And depening on the country you live this can be a serious amount. There are several people from poorer countrys working remote for low money.

So when you wanna take this serious, you should really know your position, market and demand. What can you offer? With whom do you compete? And how much do you must earn to survive, to grow higher?

Get a Comp Sci degree instead of the self taught path. It will pay for itself in the long run.

If you’re not inherently driven by an interest in computers, I would not recommend a job in this field. You will never be able to compete with people who do this as a passion and the constant need to learn (forever) will quickly burn you out.

Absolutely. One bit of advice might be to seek out a web agency (company that builds sites/webapps for all kinds of regional businesses). Depending on your city, demand is huge for web devs, particularly those proficient with JavaScript.

I am a web developer and I get contacted a few times a week on LinkedIn about switching jobs. I assure you, if you are a web developer you will not go job less no matter where you live unless you're doing something very wrong.

I'm an electronic engineer turned software engineer and have been doing this for decades. I am in the Midwest USA, a large city but not a high tech one.

I used to be contacted by headhunters at least once a week. Nowadays, I hear from Indeed and LinkedIn that often. I have been to their offices for interviews and assured they would find me a job quick.

While I have risen through the ranks over the years to project manager and a prolific company and, eventually, ran my own profitable company, I have never, ever been sent on an interview anywhere by any of the operations I mentioned above.

Ok yeah, I guess that is probably a common story. I have though and I would assume that is also common :)

Yes definitely. There are way more jobs opening than skilled laborers, and very likely to continue that way for a long time. Have some fun and enjoy your learning, don't always think about it as a job or for getting a job.

most computer science degree takes 3 to 5 years. They are general enough so that you can pick up almost any specialty in a few months after that, but if you're starting both web dev AND computer programming, 6 months is absolutely nothing.

Remember software dev is not about assembling big pieces of codes given in a framework, it's about logic / control flow, data structure, architecture. Once you understand all that, you don't consider yourself a "web dev" or a "mobile app dev" anymore, but just a software developper.

This is a very interesting talk on the matter. https://www.youtube.com/watch?v=0rkTn98h1aI

6 months isnt a long time

Unfortunately, I'd say it's the viable career choice. I've always found vastly more employers interviewing for web dev than for any other tech position.


Computing disciplines aren't easy, so you're best off following your interests as you get started (self directed or otherwise); with the goal of sufficient skills in completion of a product. Move laterally, instead of deep prior to your first job, or until you have a more diverse understanding of the technology space. That'll paint your first job; there you'll do what you're payed for, and that can totally reshape you. This repeats forever.

Yes it is. You can use job market pricing to work out demand surplus to make yourself feel confident you’re investing in something worthwhile .

Email in profile if you want to know more.

Right now yes, in the near future, probably not. As automation and better services come out, website development will be one of the first jobs to be replaced by this. Although services like Wordpress, Wix, have their problems, they get better and better every day. In the future, no one will be coding websites/not a viable career option (people may just code on the side website for really niche things)

It is a great launchpad to do other programming besides web dev. Go into web dev, because there is a lot of cool tech in it and lessons. But learn other technologies as well that will not be replaced by automation.

I've been hearing this argument since CoffeeCup, HighPowerSites and Dreamweaver were still a thing.

thegrid.io was (yet) another flame-out associated with the same line of thinking. The intricacies of performant web development are quite a bit more nuanced than a lot of people aiming to automate it would like to acknowledge.

i still think engineering will become more and more saturated to where it's a blue collar job, but don't see website builders ever replacing websites until AI is at a level where it's replacing humans everywhere else anyway

God, I hope so. I guess I can always go with my fallback of dolphin trainer if this whole web developer thing stops panning out.

I understand you, when you lack of money, it will devastate your faith. The path maybe hard, but stick to learn will worth it.

Yes find an area you enjoy, dive in and get good at coding with people, pulling people into discussion. Set for life

Sure, it just got easier.

It became something people who attended a 3 month code-camp can do without prior knowledge.

> Six months sounds like a lot

lol, it takes YEARS to be a good developer. It depends of where you live and what are your expenses and local job market among many other things.

But if you thing 6 months is a lot, maybe this is not the thing for you.

Judging by how hard it is to hire web developers, yes.

If you can't find a viable path the learn web development, or programming in general, you probably aren't a good enough problem solver to bother with the career in the first place

Yes I need to hire a React dev right now :)

This is a hard question to answer because there are still people that make a living doing everything under the sun.

Are you asking because you are concerned about the field dying? This would be a viable question, so I will assume this is your actual question.

I would get involved today, not tomorrow, today. Contact a web development business in your area, or online and talk with someone. Ask them about what kind of work they are doing. Contact a few different types of web businesses. The smaller/medium sized ones are more likely to give you the time of day instead of just a secretary that will give you someone's voicemail.

My son is 17 and got an internship last year with a local company doing web design. (minor dev work) And now he contracts with them from time to time. The business owner would hire him right now full time, but agrees with me that he really needs some life/education under his belt first.

Every field out there _needs_ hard workers. People that will show up, have a good attitude and learn, learn, learn. Being a rock start is far less important. This is odd to hear when you are on the other side of this equation, but trust me, people hiring these days will hire for character and work ethic over perfect job skills, you just need to be able to get your foot in the door.

Last, find the kind of "web dev" you want to actually do. You couldn't make me do anything else right now in life, I have to do web dev, it's not a choice I could walk away from, it's what I like doing and I have no interest in other work for the time being.

You asked "risk more time and money", everything is a risk in life. There's very few absolutes. The question is are you willing to make it work? Web dev isn't like driving a truck or being a nurse where they teach you almost everything you need to know to do your job. With web development you have to keep learning and be ok with this. And you start off not knowing enough to really do the job perfectly. I am mostly self taught, and I had to go through years of re-educating myself out of bad habits, and deciding to chose industry standards and chosing the hard, but right way, to do things.

It's always paid off for me, but then I like learning, I like seeing fascinating solutions, I like puzzles and problem solving. I'd do web dev as a hobby if I didn't do it for work.

My last suggestion is to get started how I did, build something you actually want. And keep doing this over and over. I never wasted any time doing this. I made everything from my own text-to-speech tool (silly and half baked) to a full CMS. When in school I made multiple websites, games, apps, multiple portfolios, (trust me, a lot of this stuff was total crap, but I really learned a lot). Everyone else in my class did the minimum to get by. I've learned databases, server management, a few different version control systems, multiple languages, animation, design theory, etc... It's all been interesting, fun, often stressful, often exciting, but always useful.

In the end, if you don't find work, either keep looking until you do, and keep up your skills (always, always be working on something) and eventually you will find something. It's just a numbers game. Or find satisfaction in whatever job you find yourself in outside of web development, it's always an option for some people.



I'm the founder of Ruby online school, not giving a link for two reasons: 1) the name of the school doesn't matter too much 2) it's in Russian anyway.

So what I found is that students find jobs pretty quick. Some of them after 2-3 months from the ground up, from nothing! Absolute beginners! (the entire course is for 6 months, 100 hours of video).

I was thinking why is that, because here is some quotes from reddit:

1) "why is it still so damn hard to get your first job?"


2) lots of interviews, no offers


3) "I graduated from GA Tech.. looking for entry level... position for over 6months but still nothing."


But in Russia it's different (99% of my students are physically located in Russia, I'm in US). There is huge demand for web developers. You can jump on the train after couple of months. Why it's so different than US?

And I found explanation: there is no Russian-speaking cheap labour that can write code. Companies in Russia need Russian developers only because English isn't number 1 (or number 2) language in the country. For US (and English-speaking market) it's the opposite: lots of English-speaking cheap labour, while locals are struggling to pay their bills and asking for more $$$.

$30/hour for any US-based programmer is not a big deal, but for some countries it's a huge deal. So countries like India, China, Russia, Ukraine all contribute to that. For companies it's easier to hire someone from these countries with experience, rather than finding local for the same money without experience.

So the bar is pretty high if we're talking about US. If you're based in Russia, it's probably the best time ever to become web apps developer, especially FOSS webdev: sanctions force government to switch to open source solutions and demand is damn high.

I'm also author of the book about Ruby for absolute beginners, if you're interested https://leanpub.com/rubyisforfun

Simply put, yes.

I've noticed this about web dev. There are two parts. Graphic designers who can create web sites and software programmers who do the same. Most of these people work for medium to large companies full-time. The rest are like freelance artists who sell their work but have to market themselves continuously. They get hired to do one job and then their done and move on.

No, the market is saturated with idiots who can do the same you do but cheaper. Getting a job is nearly impossible.

It is viable that's why they are investing in browsers. Hahahha

Just because politics aren't investing in roads doesn't mean that selling cars stops being a viable business model.

Who is "they" and how did you get the impression that they are not investing in browsers?

Applications are open for YC Winter 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact