TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Alternative to mainstream programming jobs when you're self-taught?

19 pointsby ccajasabout 7 years ago
I have a 4 year art degree and self-taught in programming and usually work in web dev, but I have a bit of paid game programming experience as well (C# and Unity with indie games). Web development and mobile app development are usually the go-to career tracks for self-taught people. I consider these to be the mainstream jobs in software. But what possibilities lie for the self-taught in less mainstream jobs?<p>In particular, I like tinkering around with limited resource capabilities and finding performance bottlenecks in code, and optimizing performance. For one of my game dev jobs, most of my work was around profiling inefficient code, and optimizations for rendering and geometry generation. I know the basic concepts around some data structures and Big O.<p>What other programming jobs can I work on that present similar technical challenges? I am not some web framework guru, but I don&#x27;t find a lot of the challenges in web dev that interesting anymore.<p>I have hobby C++ experience but my knowledge in that language is not very strong anymore (many of my old C++ projects were locked out from a hard drive failure). Maybe work in embedded programming? Or is that a high barrier of entry for an autodidact without a STEM degree?

1 comment

mikekcharabout 7 years ago
Best advice I can give you is that programming is programming. I&#x27;ve worked all over the place (literally and figuratively): scientific, embedded, real time, shrink wrapped software, enterprise, web development. There isn&#x27;t a lot of difference, to be honest.<p>The key thing to understand is that programming is 5% &quot;getting it to work&quot; and 95% &quot;expressing what you are doing in a way that others can extend&quot;. Most people, when they are at the beginning of their career, have enough to worry about just making the code work. It&#x27;s easy to get an anti-climax once you get over that hump, though.<p>Even doing work in real time or other resource constrained systems, you will discover that algorithm design and optimisation are secondary because in a big software system you often can&#x27;t get there from here. You have some terrible mess and it seems infeasible to refactor it in a way to even apply those optimisations.<p>Anyway, having said all that, I&#x27;ll say that embedded work <i>is</i> mainstream :-). I have a hard time thinking of stuff that <i>isn&#x27;t</i> mainstream. By numbers, the vast majority of programmers work on internal business systems -- many of which are far older than the web. So I would remove that notion that &quot;mainstream == web development&quot;. Programming is programming.<p>Being self taught is not so much of a worry these days. I don&#x27;t really pay much attention to it when hiring people. I will say, though, that companies with an engineering background often like to hire people with engineering degrees first and will begrudgingly hire people with CS degrees. It&#x27;s often hard to break into those companies without a STEM degree. Having a good CV helps a lot.<p>As I have done it many times, I will say that it is challenging to hop over domains. If you are a web developer, then people often tag you as a &quot;web developer&quot;. If you are an enterprise Java developer, then people tag you as an enterprise &quot;Java developer&quot;. It&#x27;s up to you to display a flexible mind and show that you are a generalist programmer that can pick up whatever tools they throw at you in short order. I&#x27;ve literally lost track of the number of programming languages I&#x27;ve used professionally (probably somewhere between 10 and 20), not to mention libraries and frameworks. When I go to an interview I explicitly tell people, &quot;If you want someone who is an expert in X and who knows all of the tricks for using X, then you probably should look for someone else. If you want a solid programmer who is going to help you get your code base in order, then I&#x27;m your guy.&quot; Sometimes it is a short interview ;-) (which is good for both of us).<p>Finally, one last piece of advice. When you work for someone, you do what they need done. Sometimes that corresponds with what you currently want to do, sometimes it doesn&#x27;t. If you want to develop yourself in a particular area, <i>you</i> have to invest in yourself. That means a side project. For some parts of your career (even myself right at this moment!) that means doing katas, and exploring ideas. For others that will mean starting a project and grinding it through. While there is no harm in interviewing for jobs, I would encourage you to spend most of your time exploring the kind of programming you want to do -- by writing your own code. Having done that, you will be <i>very</i> much more valuable to the people looking for that kind of programmer. It is true that lots of people in the field that you will want to get jobs in will not care about that work -- but, trust me, you don&#x27;t want those jobs.<p>Good luck!
评论 #16604646 未加载