It is fun creating software. It gives a true ”What do you want to do today” feeling when you have the possibility to do any software you want.
In 1984 you needed a week to get started with VIC-20 BASIC programming. You needed another week to learn assembler. Gaining skills and experience took some more time but it was fun and you could quickly get going creating games. Commodore 64/128 was not much more to learn. Amiga was also great fun with AMOS Basic.
In the 1990s you needed to learn object oriented programming. It was easy to do software in Visual Studio. Microsoft took care of you. A fat client and a little database togeter with that did the trick. Skills in SQL started to be useful. Programs were distributed on physical media.
A full stack programmer needed to know Visual Studio and JET databases or just Microsoft Access or just FileMaker. It was fun and quick to draw a GUI and attach more features to it.
Soon in the middle of the 90s even small companies started to get company networks and the little local database moved out to an SQL server in the same network and the concept was called client-server. Now you needed to know about SQL server (SQL, transactions, backups, config, db migration), network traffic (IP, netmasks, segmentation, broadcasts). It was still reasonable much to learn.
Sharing data was fun to program. This opened up for colaboration on a new level. Great fun.
A full stack programmer needed to know Visual Studio, SQL server, Networks.
In 2000 we saw the start of mainstream internet. The mature and fun client-server got internet communication. We also saw the birth of .Net so programmers could continue using Visual Studio but now for the web.
Another popular track as a web programmer was to learn LAMP. Linux operating system, Apache webserver, MySQL server, PHP programming language.
Rudimentary knowledge about LAMP + HTML + CSS + Browser incompabilities could take you far. A bit more to learn. It was not sure if the LAMP track or the .Net track would be the best career choice.
The fun in programming is still there but suddenly as a LAMP programmer you can no more easily create GUIs. The feeling is more ”What CAN you do today”.
In 2010 until now 2019 the web have taken over completely. The limitations what you can do in a browser is starting to disappear. The LAMP stack is mature. You must choose what frameworks to learn for PHP and Javascrpt to speed up development.
A full stack developer need to know LAMP, HTML5, CSS3, some PHP frameworks (Laravel, Magento, WordPress), some JS frameworks (Knockout, jQuery, RequireJS, AngularJS, Underscore), Cacheing (OP Cache, Browser cache, Redis, Varnish + how your framework use and are affected by them), Git, Github, Composer, Docker, databases (MySQL, indexedDB, localStorage and possible a NOSQL database), handle images and video over the internet. Giving a good web experience on mobile phones. Integrate with 3rd party systems. Tracking visitors and analytics.
If you work in a team you need to learn an agile working method and tools for collaboration.
If you work in e-commerce then you also need to know purchase processes, marketing, content, payment methods in different countries, shipping alternatives, tax rules, common practice.
You are also required to have soft skills like: thinking like a hacker to avoind building security holes, documentation skills, solution oriented, the skill to say NO and the skill to say I am sorry, the skill to early admit to others the holes in your knowledge.
And above all: The ability to give a qualified guess how long time the task will take.
What skills you need to have for 2020 and onwards is probably the above and much more.
Did you notice that the fun part was lost somewhere. I still think it is fun to build software but the amount of knowledge needed to do that increase for each year making development slow and complicated.
If you think that a school degree will keep you floating forever then rethink that. Constant learning a little every day on your spare time will keep you on track. Sometimes it is not enough to just study the fun stuff you need to learn the boring stuff too.
Am I a full stack developer? I used to be but now I am far from it. I now focus on being good at the backed part of development. It is a little sorrow, a thorn.
Some things were better 30 years ago but most things are more developed now.
I just miss the creative fun.