
Back end development in 2018 - tomcam
https://medium.com/tech-tajawal/modern-backend-developer-in-2018-6b3f7b5f8b9
======
danesparza
Great advice!

Notable omissions:

No real discussion of network protocols (or a network layer at all). For
debugging in a distributed world, that's a valuable skill.

No real discussion of software deployment (although for backend services,
docker might qualify). In a world of servers and PAAS's, it's helpful to know
how to safely push the bits around.

~~~
redsymbol
Deployment: Perhaps that topic will be covered in the separate DevOps roadmap
they say they are working on.

------
commandlinefan
My problem is always striking the right balance between learning _X_ well
enough to use it and digging so deep into it that I could implement it from
first principles from memory, write a book about it and teach a graduate-level
university course in it. It's hard to figure out just where to draw the line,
especially when it's something that just "supports" the work, like redis or
Kafka.

~~~
justaguyhere
I've the same problem, especially with a full time job. Those who can learn on
the job are the luckiest.

------
chasd00
I would add:

1\. OpenSSL and creating your own PKI as well as managing certs, renewals, and
mutual client auth with x509 certs

2\. basics of server security. IPTables and best practices around only opening
ports you're using and other settings

------
justboxing
Enterprise options for languages lists Java and .Net.

Ok, .Net is not a language, it's a framework. C# ( & VB.Net) is the language.

~~~
nathanaldensr
Nor would I characterize them as "enterprisey," especially .NET. .NET is
extremely accessible and .NET Core has virtually no barrier to entry--from
tooling to supported languages to supported OSes. This meme needs to die.

~~~
wink
Probably my filter bubble speaking but I know zero people who have ever
deployed .net code on anything besides Windows or even working in a "mostly-
Windows" shop.

There's a few Mono applications in Linux distros, but I think I can also count
those on one hand.

So I'm not disagreeing it's possible, just very unlikely. (Even worse than PHP
on Windows - sure, there used to be some high profile shops (5-10 years ago),
but it always seemed like 10% or less. Also I'm not up to date on that
regard.)

------
fernandopj
I suggest adding something about version control as well, Git being the
recommended choice, GitHub, GitLab as recommended providers. Great article
nevertheless.

------
ShabbosGoy
What does HN think of Swagger? It seems to be the quickest way to prototype
REST API, CRUD, and schema. It’s particularly useful when you have an SPA.

~~~
jrs95
Swagger is great for both documentation and the client code generation. I use
it to generate clients for inter-service communication as well as for SPAs
(best with TypeScript).

It's really best when your backend framework typically generates the Swagger
definition from your API code, though. Spring, APIStar, and others will do
this.

~~~
rawrmaan
If you're using TypeScript, also check out RESTyped:
[https://github.com/rawrmaan/restyped](https://github.com/rawrmaan/restyped)

------
handbanana
I have literally just been putting together a list of things/topics to brush
up on/learn over the next 6-12 months. So this is very helpful

------
luord
Good list, though maybe auth types (16) should be looked into before creating
an app that's gonna use authentication (9).

------
vga805
Nice list. Why not suggest Ruby as a beginner language though, it seems like a
good choice...

~~~
chc
It suggests "any of the scripting languages," of which Ruby is one. Are you
saying it should specifically recommend Ruby over all the other scripting
languages? Because, I mean, I like Ruby a lot, but I can't see any reason why
you'd distinguish it that way.

~~~
jrs95
And honestly, while it's my favorite, JS and Python are probably more
practical at this point. Ruby doesn't have as strong of a use case outside of
Rails, sadly.

------
petraeus
looks similar to the web developer in 2017 graphic, are the the same person?

you are also missing a big important part of being a full stack developer in
2018 and that is adwords and seo. Not being familiar with these topics will
put you at a massive disadvantage in comparison to your peers and for your
business.

~~~
zokier
Adwords and seo are really no concern for a backend developer

