

Ask HN: Should a n00b learn front-end and work back, or vice versa? - webmaven

Someone I know is very interested in switching to web design and&#x2F;or development as a career, but is uncertain about where to start, and I am uncertain what to recommend (my own experiences as a beginner are now 20 years in the past, and the environment is very different now).<p>This person has an interest in design and likes to make things look nice, but also enjoys data organization and has serious data manipulation skills using spreadsheets.<p>Do I suggest they start on the front-end with HTML+CSS, add JS for some interactivity, and then work toward the backend with a web framework, eventually adding various DB, numeric processing, and other backend skills as well...<p>Or do I suggest they start with data storage and manipulation with databases and tools like Python and Pandas, and then moving to the front-end via web frameworks and visualization libraries?<p>Either path would be rewarding for them, just in different ways, and it is unlikely they would be able to figure out what they find <i>most</i> enjoyable until they have tried a broad range of the &#x27;stack&#x27; for themselves, so the real question is which sequence is actually easier&#x2F;faster&#x2F;less frustrating to learn for someone new to the field.<p>Or perhaps there is some other direction or sequence I am overlooking?
======
nostrademons
I generally recommend that new devs who don't yet know what they want to
specialize in learn front-end dev first and then work their way backwards.

The reason is that frontend skills are widely transferrable between companies,
and qualify you for a large number of jobs. This means that you can get your
foot in the door at a lot of different places, and if you don't like it, you
can switch to another company or product really easily. Once you find a
specialty, _then_ you can start learning backend technologies in depth, and
probably switch roles within the company.

Backend technologies are often surprisingly tightly tied to a particular
problem domain. Yes, familiarity with SQL and an RDBMS will help you in a lot
of places. However, many of the more interesting places to work need graph
databases, high-performance timeseries stores, memory caches, bloom filters,
flat file formats, and a large number of custom technologies.

And when it comes to data _analysis_ , your effectiveness is largely dependent
upon how familiar you are with the particular data set you are analyzing. I
saw wizards work wonders with Google's corpus of news articles; they could
really quickly machine-learn models from the corpus, even for totally new
products, because they'd been working with the data set for the last 10 years.
However, while there are some general techniques that most data extraction &
prediction problems use, that wizardry wouldn't translate to, say, protein
folding. Backend data processing is much less transferrable between different
sets of data.

The flip side is that domain-specific knowledge tends to last much longer than
frontend technologies. Typically, you have to learn a new frontend technology
every 5-10 years; I started my career in 2000 and have already had to jump
from Java Swing to static webpages to single-page webapps to mobile
technologies.

