

Ask HN: How to just be a back end developer? - aliencat

I&#x27;ve been learning and writing backend code(python, flask, Django...) dedicatedly for about 2 years. I learned most of these stuff by myself and has not yet applied for a developer job.<p>I&#x27;m shocked when I see a lot of jobs asking for full-stack developers. It seems to me that it&#x27;s hard enough to be good at one technology(takes me 2 years already and still so much to learn). I&#x27;ve looked into javascript, css(bootstrap) and such and found great obstacles with these technologies. No doubt I would have to further devote years of effort to learn these as well.<p>Can I just be a backend developer? What would be my advantages over full-stack developers?
======
phantom_oracle
It depends on what type of frontend work you want to do.

The advanced stuff (like JS frontend frameworks) all seem to have a deep
learning curve, but normal HTML5 + JS isn't that difficult (with tools like
bootstrap, etc.)

If you've been building stuff in Django and Flask for 2 years, you've already
done some frontend work with Jinja2, etc.

I guess this is why developers justify charging USD+70 per hour, as the amount
of skill it takes to master so many technologies warrants a high pay-rate.

~~~
fsk
For now, just learn the basics (simple html, simple DOM manipulation, simple
jQuery, simple CSS, simple Javascript).

Those fancy frameworks are all going to be obsolete in 2 years anyway (i.e.
angular 1.0). Besides, you need to know the basics in order to use the fancy
frameworks CORRECTLY.

Unfortunately, most employers want you to be an expert already in whatever
tools they are using. I know people will object and say they hire for talent
and not resume keywords, but that hasn't been my experience as a candidate.

The reason employers want full-stack instead of back-end is that it cuts down
on the communication overhead. You can do it all yourself, rather than handing
off the front-end bit to other people. I'd rather hand off tricky front-end
work to someone who knows it better.

My experience is mostly back-end, but recently I've been doing some simple
front-end work. It makes more sense to have separate back-end and front-end
specialists, but that isn't the way things are done anymore.

I wrote a video poker practice game in Javascript/jQuery/PHP/C++. It works,
and my father is playing it, and he likes it. It isn't fancy modern web style,
but it runs and gets the job done. (Javascript/jQuery on the client, with
simple CSS. PHP with a shell_exec to C++ to do the calculation of the optimal
strategy. The client does an AJAX call to get the next hand.)

Try writing something like minesweeper or a sudoku game in Javascript/CSS for
practice.

~~~
aliencat
I agree. The problem for me is that writing the same front-end stuff that
takes an expert an hour can take me half a day googling and debugging. And
it's not fun at all for me.

And frameworks do expire quickly. Therefore it's hard to be determined to
devote time to learn any of them seriously. And plain old DOM manipulation and
CSS clearly cannot beat the development speed of modern frameworks.

~~~
fsk
That's my issue with studying new things to further my career. There are SO
MANY things. What should I pick? Also, most HR and headhunters say "Only on-
the-job experience counts. If you learned it on your own, we don't value it."

After a few weeks, you'd get better at it. Unfortunately, employers want
someone who's already an expert. They aren't comfortable letting someone learn
on the job, even if searching for their purple squirrel means the position is
open for longer.

I got something done in a couple of hours with the "old-fashined" style, when
it probably would have taken me weeks to learn a framework for a simple task.

For a personal project, the plain style is fine.

Most of these MVC frameworks are poorly documented and poorly written. I've
used several that I didn't like. I wouldn't use an MVC framework for my own
projects.

To find a job, they expect you to already be an expert in whatever they are
using. The only way to expand your skillset seems to be: Pick something you
want to learn, and use it for a project at work, even if it isn't the right
choice for your current employer's needs.

------
CRidge
Many projects are small, and even big projects tend to be split into many
smaller projects. In those cases, it is vital that everyone on the team can do
anyone elses job if they have to. You tend to get one role most of the time,
but you need to be able to understand the whole project.

I would recommend looking into "old fashioned", established companies who do
their own development. I've worked with banks a few times, and they seem to
often still do the "database department", "back end department" and "front end
department" thing. I'm sure there are other areas too, but that's the only one
I've had experience with.

------
notduncansmith
In smaller companies, my experience is that you'd be at a distinct
disadvantage compared to most full-stack developers. At larger orgs, however,
there's plenty of room for specialization - depending on the size, "backend
developer" may even be far too broad of a term.

That said, while the front-end can seem scary, it's alright once you dive in.
With 2 years of experience as a Python developer, I wouldn't expect you to
have too much trouble picking up Javascript and HTML/CSS.

------
philjr
Firstly, yes! Typically what you're seeing are smaller companies where
everyone on the team needs to be able to contribute and review everyone elses
work. That's not to say that's all that's out there.

We have whole swaths of teams that just do backend development.

Basically, get in to a larger organisation that allows you to specialize a
little more. Or go work for a company that just sells backend infrastructure /
middleware :-)

------
bewe42
Guess depends on the language, I'm doing Java backend dev since almost 15
years and loving it. I'm developing front-end but only for my own side
projects

