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: How to become a software engineer as a self-taught front end developer?

15 pointsby moonfleetover 3 years ago
I am a self-taught frontend developer with a couple years of experience. Though software engineering is a broad term that may cover some aspects of what I do professionally, I do not consider myself a software engineer. Maybe it&#x27;s the lack of formal CS education or having minimal experience developing actual products as opposed to UIs for them.<p>Is being a software engineer a state of mind or an actual profession that comes with certain prerequisites?

11 comments

otrasover 3 years ago
As many others have mentioned, the job title is largely arbitrary (at least in the US), and the easiest way to become a software engineer is probably to get hired for a job with that title!<p>As for whether or not you consider yourself to be a software engineer, that seems like a separate problem. I went through something similar when getting into tech, and I started as a self-taught front end developer before moving deeper into the stack at different jobs. I remember the feeling of there being a divide between the thin layer I worked with (JavaScript, CSS, React, etc) and much of how the rest of the software, the computer, and the internet work, and the divide felt very wide.<p>One thing that I&#x27;ve found helps with this is to build your foundational CS knowledge over time. I found CS classes (via CS50 and classes for a post-baccalaureate originally) beneficial for getting an introduction to concepts and areas that I was pretty unfamiliar with, and it has definitely helped to dissipate some of the fog around unknown concepts that I wasn&#x27;t getting exposure to through my day job. I wouldn&#x27;t say it was an over night shift, but the general knowledge has helped me become more confident about software in general, and that divide is barely there these days for me.<p>The only downside is that the classes expose you to the true depth of complexity in many areas (e.g. an intro compilers class vs. the real life complexity of gcc); it turns out you can go as deep as you want in <i>so</i> many different areas. It&#x27;s a little unsettling to see the depth, but it&#x27;s nice to go even a little deeper than the surface.
jstx1over 3 years ago
The &quot;engineer&quot; part usually starts a discussion because in some countries it&#x27;s a protected term so software engineers can&#x27;t call themselves that. Or some people think that because the word engineer is in the title, people with the title should be held to some higher standard or somehow regulated - this isn&#x27;t a thing anywhere for software engineers as far as I know.<p>&gt; Is being a software engineer a state of mind or an actual profession that comes with certain prerequisites?<p>It&#x27;s a job title. If your job has the title of software engineer, then you are one. The rest is either stories that you&#x27;re telling yourself (&quot;I do not consider myself a software engineer&quot;) or bullshit gatekeeping (&quot;you&#x27;re not a real $x until you do $y&quot;). It doesn&#x27;t make any difference whether your title is software engineer or software developer.<p>Titles aside, if you have a problem with confidence, spend more time learning and doing difficult things.
评论 #29259376 未加载
zapharover 3 years ago
If you can write javascript that solves problems you are a software engineer. Your skill level will vary in comparison to other people but there is no reason you can&#x27;t call yourself a software engineer.<p>If you want continue to increase your skill level then the best way is to start branching out in the set of tools you can comfortably use. Write a small API server, Create some command line utilities for yourself, learn some different programming languages.<p>On each new think increase the difficulty level a bit. Push yourself, you&#x27;ll continue to grow and your skill level will continue to vary in comparison to other because of it.
rizzaxcover 3 years ago
To me being an &quot;engineer&quot; is when you have expertise in designing and building a &quot;construct&quot;, that you have deep enough knowledge and experience to reason about the choices you and your team make when working on that construct, however large or small. Of course, this doesn&#x27;t mean anything to anyone but me. So if you were to apply my definition to yourself, fill in the possible knowledge&#x2F; experience gap until you&#x27;re always confident to explain your choices to an audience
karmakazeover 3 years ago
I think of &#x27;engineer&#x27;&#x2F;&#x27;engineering&#x27; vs &#x27;developer&#x27; in the software world as in the non-software world. There are inventors, hobbyists, researchers etc. But when it comes to coordinated projects with sizable team(s) or over a longer span of time, that&#x27;s an engineering project.<p>So the best way to become a better software engineer (by this definition) is to work on projects with others (possibly opensource though that has additional aspects) or projects over longer periods of time. You find that your former self could well have been another developer, whose legacy you have to deal with. You learn to make things that age better, or designs that are easy to communicate and build upon.<p>I wouldn&#x27;t preclude a front-end dev from being called a software engineer, but at the same time one that has experience in full-stack is much more aware of the tradeoffs that choices imply, to be a better one.
drakonkaover 3 years ago
Nuances of whether &quot;engineer&quot; is a protected title aside, I think feeling comfortable considering yourself an SE is less about whether you&#x27;re doing frontend work and more about your confidence level and potential impostor syndrome.<p>It took me a while, too, to feel like I could honestly put &quot;Software Engineer&quot; in my LinkedIn profile. I&#x27;m self taught like you; went from build, to tools and engine, to backend, to frontend now. A few years in I just realized: that is what my literal title is in my contract and I am doing equivalent work of all the other formally and non-formally educated SEs on my team. So now, after over ten years of this, I feel no hesitation about calling myself a Software Engineer in relevant channels (although sometimes I just prefer the sound of &quot;programmer&quot;).
austincheneyover 3 years ago
As a self taught front end developer in the US there are only two metrics that matters in software: <i>employability</i> and <i>compensation</i>. That means the ability to attain employment and make more money. That’s unfortunate because it does not directly speak to competence or problem solving potential. It’s also why many senior developers will intentionally shift away from trendy bullshit for less money.<p>As a self taught front end developer finding employment can be challenging. There appears to be a great divide in this line of work between candidate desirability and candidate competence. For example experience with a set of tools is more desirable than the ability to troubleshoot a problem and evaluation of either is highly biased.
kidgorgeousover 3 years ago
Just keep applying for jobs in whatever specialty you want to get into. Can you code? Yes? That means you can solve problems. Titles are meaningless. And there&#x27;s more job openings than people to fill them right now.
beardywover 3 years ago
There is no universal definition, nor could there be. But if I was using the term for a front end developer I would hope such a person would be comfortable with the <i>concepts</i> of anything I might pull up on MDN and have a reasonable understanding of HTTP, especially headers.<p>Mostly reading and a bit of experimenting at home.
mosdlover 3 years ago
I always distinguish engineer vs developer in front end dev by asking if you understand how the frontend works (dom, js, css, etc) vs being able to build frontends using an existing framework.<p>For example, I once interviewed a FE person with 8 years of exp and he was convinced that only react vdom allows to update partial trees and that previously you had to rebuild and rerender the whole dom. He obviously did not understand how things work correctly.
bionhowardover 3 years ago
Is being a software engineer a state of mind or an actual profession with certain requirements?<p>Why not both?<p>The only really hard prerequisites, for me, are<p>- Know how to write tests, and idiomatic code in the languages used by your desired shop<p>- learn how to read the manual, and how to write good docs<p>- learn to manage your emotions when stuff breaks or someone else disagrees. If you can simply stay calm even when the client is upset, stuff goes wrong, has bugs, or crashes, that&#x27;s a tremendously valuable mindstate. Literal Stoicism.<p>- learn how to write, speak, and communicate.<p>- Be consistent with basic hygeine. Being gross is a silly way to limit oneself.<p>flow is the mindstate of all truly professional level hacking .. it requires you to master your field to a quasi-reflexive, instinctual level<p>curiosity is a fine motivator, and your &quot;actual&quot; products can be things which just satisfy your personal curiosity. It doesn&#x27;t have to save the world or make money to be a side project worth putting in production (the cost is minimal to free these days)<p>For formal CS, Im a biologist but I definitely find working ridiculous numbers of algorithm challenges is the great equalizer. If you crush many algos then you will learn a ton. Goes for all of us, even pros and non technical people, there are challenges for all levels of skill, we all could get into the weeds more often and benefit IMHO<p>As for developing &quot;actual&quot; products, one nice way to make progress on that is to reach out to a few acquaintances and make sure they know you&#x27;d be down to help them hack out a project sometime. Some percentage would be interested and you could be a dev team of one. Also pair programming fun little web apps is good practice<p>It&#x27;s good you&#x27;re being humble but don&#x27;t excessively discount the work you&#x27;ve already done -- you could add a backend and infrastructure as code to a front end you liked building and boom, you&#x27;re in prod. Vercel makes this so easy it&#x27;s not as much of an achievement as you think, but infrastructure as code has been known to make front end devs feel like they have superpowers.<p>Also, you could jump into the opposite side of the pool, like data science notebooks in Python or Julia. Machine learning is representation, evaluation, optimization (see &quot;the master algorithm&quot;)<p>Most companies need great developers, you don&#x27;t have to be a 10x developer to do a lot of good for somebody. In a lot of those companies you&#x27;ll find it&#x27;s useful to also master the domain you code for<p>Software engineering for me is like one of those neckbeard iceberg memes:<p>basic algos, SQL, backend, IaC, data science, ML, AI, arxiv, biorxiv, chemrxiv, medrxiv, quanta magazine, information theory (it clicked for me when I studied &quot;information content&quot;), algotrading, applied math, RL, learn the history of Bayes Theorem, transport theory is worth hacking on, definitely learn who are Leonid Levin and Ray Solomonoff, check out Judea Pearl, too, causality is still underutilized, also multiparty computation &#x2F; secret sharing and crypto in general is really deep, then pretty soon it&#x27;s 4AM and you&#x27;re wondering how Schmidhuber invented the universe in the 1990s.<p>you can just explore randomly, and have fun, and eventually as long as you&#x27;re not a criminal, you&#x27;ll learn enough to have something to contribute. Yes, business and self help books count too.<p>Edit: just to pile on one more thought, one of the best skills a software engineer can possibly master, is that of diplomatically managing people&#x27;s expectations about technology. For example we&#x27;re the guys who have to convince our friends to consider the pros and cons of the latest and greatest fancy thing. Make sure to directly confront people who have unrealistic expectations and if you are a real engineer, then you provide real numbers, probability distributions over target measures with a margin of safety. Engineers also respect and learn standards like Oauth2 even if we don&#x27;t like em