Ask HN: What if you hate web development?
Is there hope for people looking to break into software engineering if they don't like web development? From the outside at least it looks like all the jobs are full-stack roles. Is it some kind of right of passage? Any advice for someone who genuinely wants to break/transition into this profession but wants to avoid web apps?
45 comments
[ 4.3 ms ] story [ 110 ms ] threadIf you want to expand your skills right now get an Arduino, some LEDs and a handful of logic chips.
Off the top of my head:
- devops
- security
- mobile apps
- desktop apps
There is? Who's paying for it?
There was a lot of buzz a few years ago. I’m not sure if it panned out.
Big tech companies do hire a ton of data roles but they might not align with what people assume the role to be.
My experience has been that places that ask for "fullstack" are generally small shops that don't want to hire specialists because their problems are product-centric, not engineering centric.
That said: web is a great way to get your feet wet. There's more to it than just making a page look pretty. You can get exposure to a ton of different problem domains and get a decent footing in many of them just by getting really good at web dev (particularly by working on sites/applications run by larger organizations).
Also, thanks for recommending https://courses.edx.org/courses/MITx/6.00.1-x/1T2014/course/ in one of your comments; it looks quite interesting.
In this day and age, there is tons of data being generated in institutions like stock trading data for a stock brokerage company or call record data for a telecom company. Usually these data needs to be parsed, summarized or analysed etc.. so there is a lot of back-end work that occurs.
Back-end processing is usually either OLTP (online transaction processing) or OLAP (online analytical processing). With OLTP, it is about the software performing some repetitive task that supports a business function. For example, with Amazon shopping; the software needs to record the order, reduce available inventory of the product, etc..
With OLAP, there is usually some analysis on the data that needs to be generated like a report showing Amazon orders that match a certain condition.
I did do backend dev for the last year and a half which is part of web of course, but no front-end bits were touched. Most of my career has been spent working on desktop applications. I don't really know what advice to give you other than "don't apply for web dev roles". I see many non-web positions in my area, they don't seem scarce at all.
Switching to a frontend lean now has certainly been very interesting; there are fun challenges and interesting things to learn in all domains.
It will be nigh impossible for you to break into the field if you have nothing you are actually targeting other than saying “I don’t like that”.
The technology has many aspect.
> From the outside at least it looks like all the jobs are full-stack roles.
Try to change your lenses. Not really at all.
https://www.kernel.org/doc/html/v4.17/process/submitting-pat...
https://developers.home-assistant.io/docs/development_submit...
https://www.indiehackers.com/
Godspeed and all
If you want to leave web development and anything related to it behind then I’ll suggest getting deep expertise in one of the programming languages you use as part of your job (python, java, typescript, etc) and then look for jobs where the core requirement is language expertise and product is not web app.
I cannot speak for the OP, but my hesitancy around front-end web work is that browsers seem like a mess, so I worry that my trying to build a reliable front end would tend to be too stimulating and too stressful for me.
Having said that, there will be some cross over with web tech and it’s not a bad idea to start there and end up on the back end of you don’t like it.
I used to work with analytical data that mainly came from mainframes and such with no interaction with the web. Then things changed and I had to understand things like json, restapi etc . For people with a web dev background this isn’t a big deal but for me I struggled a bit adapting.
You can try it out by getting something like an Arduino (or rpi if you want to learn embedded Linux) and trying to automate something where you live.
I've been primarily an embedded developer for the majority of my 25+ years in the software field with occasional forays into desktop, web and app development.
The only newbie devs I've seen doing low-level MCU development already had backgrounds in EE or CS/SE and did some basic embedded programming in school. I've worked with a lot of desktop/web guys who made a fantastic transition to embedded, but they were coming into it with years of experience and they usually started at a higher level (e.g., working with UIs or databases or communication protocols).
Embedded is not the friendliest path if you're trying to break into software without a technical degree.
Additionally, I very rarely see roles in that area listed that someone from another fields could “break into”. Often they’re looking for someone who has significant domain experience, and by domain experience I don’t just mean my embedded software in general, but experience around the actual product target business itself (medical devices, cellular networks, whatever).
For example I looked at a job near working working on integrating 5G chipsets into boards. The work was relatively high level (you weren’t designing the 5G stack or anything, maybe at most writing some modem drivers) but they were looking for people who from that domain and had experience with all sorts of strange proprietary Qualcomm crap.
Make sure you know what you're getting into, and what areas pay well.
Embedded has a terrible reputation for underpaying (even in the US) or breaking into the industry, with similar issues to game dev.
Most of the articles written by apparently successful embedded software engineers are actually ... successful electronics engineers, who were then asked to do the project software too.
Having said that, I guess if you follow kickstarters, you might be able to cold call those projects if you know your stuff.
Source: I have done embedded software before.
- Algorithmic trading implementation for a boutique hedge fund
- Ground processing for satellite imagery
- Tasking and orchestration of geointelligence product generation suites
- CI/CD pipeline and dev environment internal tooling and automation
- Platform engineering
- Unclassified to classified data scanning and transfer service
- Kubernetes cluster buildout and maintenance automation
All of these involved or still involve distributed systems sending requests and responses across a network, usually using http, but not once have I had to be concerned with executing code in a browser.
All your responses -- from don't give up on web dev totally because it can open doors, to try embedded software (I hadn't even heard of the term until today) -- have given me so much to think about.
Thanks again, and I know what I'm getting myself for Christmas. An Arduino.
I'd recommend you focus on C/C++. It will provide a great foundational knowledge that you can use in almost every other part of programming. Also, from what I have heard, it's actually hard to recruit junior developers in C/C++.
This is too broad. C and C++ are different beasts.
Some examples:
https://oxide.computer/careers
https://latacora.github.io/careers/
https://fly.io/blog/fly-io-is-hiring-rust-developers/
https://www.nccgroupplc.com/careers/
https://mariadb.com/about-us/careers/
https://www.yubico.com/careers/
Is Blockchain or Crypto of interest? Go for Solidity. Do you want to code for embedded hardware? C++ (or you can start with Arduino or something and work your way up). AI Data-rangling and ML/AI? Python is a good place to start.
Rather than pick the technology, focus on what you want to do.
The nice thing about starting with web dev is that it's a nice starting point. You can build an interface and get people playing with it, and enjoy that process. Then you can build a back-end and learn what that's all about. You can keep adding areas that interest you.
You're not going to get into Software Engineering without knowing how to code first, which means you've got your own path to create. I did it, but that was back in the day when you could just open the console and often play with the little bit of JS that was on the page. It was much easier to understand what was happening back then.
Good luck.