Ask HN: Moving on from web development

27 points by ayushgp ↗ HN
I'm a computer science student who has been working mostly on JavaScript(node and front end). I want to change paths as I feel too confined in the web dev space. I want to switch to something entirely unrelated to creating CRUD apps(including mobile apps).

I have tried to read the code of and contribute to Open Source projects like LLVM and MongoDB but its very tedious to get into. For almost the whole past year I haven't learnt anything new or atleast worthwhile. I tried getting into Machine learning but the Math was overwhelming.

What should I learn so that I can become competent for jobs other than web development?

EDIT: GitHub: https://github.com/ayushgp

25 comments

[ 3.0 ms ] story [ 78.0 ms ] thread
Try building a few example CRUD apps and you'll be forced to learn everything you need to know along the way.
I have been doing just that for past 2 years as a student. Almost all projects I've created have been CRUD apps with little to no other logic than that.
Ah, sorry. I misread your question and thought you wanted to switch from JS/node -> CRUD.
Learn C++ and low level programming, it's a good path! Fairly easy to get into when you already know JS and you can gradually begin to work on more complex systems.

If you want help getting started with some open-source C++ projects, maybe include a link to your github or something in your profile so maybe someone will reach out.

Pick any technology or tool you know and dig deeper.

You know node, great! Now how the V8 engine works, why it works like that? What tradeoff the designer did? Why?

You have used databases, great! How a database works? Why?

You know what is a web browser, great! ...

You know what is a compiler...

You can always go deeper and learn more.

Clearly being able to modify the V8 engine is way more valuable than being able to use V8 with node... Or at least if you can modify the engine it is a safe assumption that you can also use it...

You're a student still, there's nothing to move on from. Apply for jobs and internships you're interested in. As far as any employer is concerned, you're a blank canvas.
I've been creating web based apps for a long time now(that too nothing meaningful). Honestly, I'm tired of reading the same articles that promote a JS frameworks, list a thousand reasons for how React is better than Angular, why I should be learning webpack, how my life is ruined if I don't know ES6, etc. Also there is no standard way of doing things. IMO, the web dev scene is pretty messed up right now.

As far as any employer is concerned, I should have at least something unrelated to web development to show for if I don't want to be hired as a web developer.

PS: I already have an internship in hand for the summer.

If you are tired of it, then don't do it. It's as simple as that.

I work in Web Dev now. Know how much I knew when I got my first job? Nothing. I have a friend who works in Aerospace. Know how much they knew? Nothing. I have another friend who started at an interior design firm that builds custom CAD software. Know how much they knew? Nothing.

Just follow your interests and don't stress about it. No reasonable employer is going to expect you to be a wiz in their specific field as a junior developer.

I've always been curious how people knowing nothing manage to get good jobs. I know many guys who are smart enough and willing to learn, but can't get hired because of "knowing nothing".
Well, 'knowing nothing' is a relative term. Myself and the mentioned friends all had degrees in Computer Science, just no knowledge of the particular niches we ended up in.

Also, the whole point my post is that these standards relative. New grad? They'll teach you. 10 years experience? You should probably walk in with some knowledge and prep.

Well, the hard part is to switch niches after you're experienced (and bored) in one niche... i.e. you work in web dev now, but will you be able to get a job in Aerospace or custom CAD software building?
Exactly, but the OP doesn't have this problem because they are just starting out.
OP here.

I think if a company is coming to my college for offering jobs, it's highly likely that I'll only be offered web development positions. Unless I do something else to prove that I can do well in other fields as well.

I am a technical lead for a frontend dev team.

Looking for a senior developer to work with, I would prefer someone with a breadth of knowledge over someone who just focuses exclusively on one thing. For example, it is no fun to explain basic Unix concepts to someone who you expect would have that knowledge. Of course, I would want good knowledge of web development, UI design etc., but things don't stop there.

Some things that look good to me:

1. Some knowledge of compilers, parser generators 2. Relatively decent Unix/Linux knowledge 3. Big Software engineering ideas and how to apply them 4. Big ideas in different programming paradigms and how to apply them 5. Low-level stuff: write some C code, tinker with assembly, learn about computer organization (you might be doing that already) 6. spin up a server and maintain it ... like an actual, bare metal server. deal with its problems. 7. Research and understand the pieces around enterprise systems ... a fun challenge is a trading system.

Even if you end up focusing on web development, coming in and saying something interesting about your breadth of knowledge and to utilize the ideas is always a good thing.

With heavy mathematical topics (ML, category theory, quadratic programming, graph grammars), I find that it takes me multiple attempts spaced over months before I can say that I understand the basic math. Math is a really broad, really deep, and really challenging subject, but extremely rewarding to pursue.

Echoing the commenter who suggested you learn C++, look at Haskell too. Of all the languages that I've worked in so far, Haskell is my absolute favourite. This free course got me over the initial hump in the learning curve: <http://www.seas.upenn.edu/~cis194/fall16/>

(comment deleted)
How programming works: -i want to do X because i have Y needing. How programming doesn't work: -i want to program X because its popular.

btw, machine learning is not about math.

Machine learning is about math.
I've been building things for the web since 1995. I feel you-I started rolling my eyes about 5-6 years ago with all the JS fatique (I love js but the community has become tiresome when you've been in it long enough) I left frontend (as much as I could) and moved into the back. At first still basically building crud apps. I've moved into and out of GIS a couple times and found it an actually interesting problem area. You might consider taking your dev skill set into GIS. My only warning is that GIS is an enterprise ecosystem so it definitely feels like sand in my crotch given my personal preference for simple/oss.
That said, like the other comments suggest, you're crazy early in your path. Adjust expectations and reality accordingly.
>What should I learn so that I can become competent for jobs other than web development?

Your question is meaningless without specifying what sort of job you'd prefer or what your interests are. There is no single set of things (other than "everything") you could study that would qualify you for all non-webdev jobs.

The answer to your question all depends on exactly what kind of jobs you are even remotely interested in?

In general it's best to compound your current skills and not go in a completely perpendicular direction to where you are going now.

Given that: - you are good in JavaScript - you haven't provided much filter of criteria - you mentioned a curiosity in machine learning - you care about job prospects and want a skill that will stay relevant

Have you considered data visualization? If you become a master at that, you can break into the higher level parts of machine learning/data science that require visualizing results to end-users/interested stakeholders. I'm good enough with D3.js to understand examples and create my own modified graphs, but I wish I had the skills to recreate all of the cool visuals you can see in their gallery.

I think now is the time I can afford to go in a completely unrelated direction.

Also last summer I interned as a front end developer at an analytics startup. My work there was to build prototypes of visualizations that were to be included in the product in the future. So yeah I have played around with visualizations as well. It's a pretty good field to get into as well.

Before you move on, fix your website :)

GET http://ayushgp.me/ net::ERR_CONNECTION_TIMED_OUT

Didn't pay for hosting. It was not good anyways. Neither am I planning on building it again in near future.