> As a Full stack developer how do
you keep up with all the technologies
Warning:
Strong, controversial, personal opinions ahead.
YMMV.
I'm not a "Full stack developer", believe that that is not
a good goal, and, thus, don't want to try to be one.
Instead, I'm just trying to make money with, yes, a
career.
In a restaurant analogy, I want to
be good as a chef and open and run a
financially successful restaurant. Maybe I
want to open
a pizza shop, an Italian red sauce place, a high
end northern Italian place
with $100 Barolo wines, a French bistro,
a French provincial place, a French nouveau
cusine place, a French classic heute cuisine
place with $1000+ bottles of
Romanee Conti, an American steak house, e.g., 18 ounce
dry aged Porterhouse steaks, a Memphis chopped
pork shoulder and rib BBQ place,
an American diner,
an American fried chick shack,
an American hot dog and fries shack,
an English fish and chips shop,
an American NE seafood bar,
a family Mexican place, or something from
Korea, China, Viet Nam, Japan, ....
I want
some one of those and certainly not all of them.
I need to be a good chef for the one I want,
not a full stack chef for all of them. Being
a full stack chef for all of them is
unnecessary and hopeless and, thus, foolish.
Then in computing, I want to know what I need
to know for my business; learning
everything about computing or just software
on Windows, Linux, mobile, embedded,
etc. is unnecessary and hopeless and, thus,
foolish. No thanks.
So, in particular, I'm not trying to
circulate my resume as a full stack
developer, able to walk into just any
old software for any old project,
hit the ground running, fully understand
everything being used right away,
like being able to walk into just
any kitchen of any restaurant and cook
anything on the menu, right away,
etc. and
to be a do it all employee of someone
else who is the founder, CEO of the business
and himself knows much less.
If such
a CEO wants a full stack developer, then
he is asking for too much, really for
something next to impossible, as the
question of the OP correctly implies.
Also full stack developer comes close to
being an insult for everyone who doesn't
know everything. But since the goal of
knowing everything about software is
essentially impossible
-- won't find chaired professors of
computer science trying to do that --
the insult is really on the CEO
asking for the impossible.
Really, I've decided that I should be
a founder, yes, very much a technical
founder, so far a solo founder,
and not an employee. Then as a founder,
my real interest is in my business,
not the full stack.
Actually,
I want to minimize what I
learn, not maximize it. Or,
in the restaurant analogy,
assuming I want to open
an Italian red sauce place,
I want to know well everything I
need for that restaurant and
likely with nothing about
Memphis BBQ, Japanese sushi,
Chinese dim sum,
etc.
And even in that Italian
restaurant, I may be the
back of the house guy
and leave the front of the
house to a partner or
employee. And I will
subcontract linen service,
kitchen design and
construction,
dining room decoration,
etc. Similarly for my
business based on
software.
Net, to heck with the full stack
and, instead, concentrate on the
business and there learn
what need to know, maybe learn
that quite well, but
don't try to learn
things don't need and
certainly don't try to learn
everything.
Really for my business, the crucial
parts are
(1) the problem I'm trying to solve,
a problem faced by essentially every
user of the Web in the world,
(2) some crucial core, original
math I derived to be the
secret sauce for an especially
powerful, valuable solution to the
problem,
(3) some initial data,
(4) publicity,
(5) server farm and network
management and security,
and (6) the corresponding
software which, given (1) -- (5),
is supposed to be just routine.
In more detail,
I decided to build on Windows instead of
Linux, so I am using
Visual Basic .NET, .NET Framework
4.0,
ASP.NET (Active Server Pages or some such,
object library for
the server software to build Web pages),
ADO.NET (Active Data Objects, object
library for using SQL Server),
IIS (Internet Information Server,
for the lower level parts of
the Web site),
SQL Server,
TCP/IP, and system management and security.
That's about it. Already the
documentation I have is
5000+ Web pages and about
a cubic foot of books --
not trivial.
E.g., for my Web site session state
server, I set aside Redis and
just wrote a little code
using TCP/IP, class instance
de/serialization, and two instances
of a collection class -- easier
than just understanding Redis.
For communications between
separate server side programs,
I am using just some
simple TCP/IP and
class instance de/serialization --
it's simple and is working fine
and was much less work to
write than just reading
Microsoft's documentation
of some of their software
to make such communications easy.
So, no JavaScript, JSON,
Java, Python, C Python,
Iron Python,
Ruby, Rails,
C (actually I wrote some
C but set it aside for
some very high quality
open source code that did much more),
C++, Objective C,
Haskell, Go,
Lisp,
integrated development
environment (I just type into
my favorite text editor,
that has a good macro language),
code repository,
formal development and test
environment,
model, view, controller
Web site framework,
AJAX, etc. Why? So far,
don't need them.
So, when I really need some
JavaScript, I will learn
some and use it.
So, to heck with the full stack and,
instead, on with my business.
If my business works, then I will have
to hire, but I will never try to
hire any full stack people.
Instead I will hire for
ability to (1) write clearly,
especially software documentation,
(2) communicate clearly with others,
especially in a team,
(3) read, understand, and apply
technical material,
(4) have good new ideas and
make them real,
(5) work hard,
(6) be honest,
(7) know at least the basics
of computer usage.
For the rest, I will train.
YMMV.