Live data from Hacker News

Ask HN: As a Full stack developer how do you keep up with all the technologies

news.ycombinator.com

51–59 of 59 posts

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#51
Full stack development doesn't mean that you work on all the things in the world, just all the things in your stack. You would work on the HTML/Javascript/CSS, the middle layer (PHP, Python, Scala or other), and the database. If you find a way to competently work on all those things, BOOM, you're a full stack developer.

The secret to doing full stack development well is figuring out how to keep the number of things you need to know at any given time low. A product that is using Ember, React, Angular, PHP, Python, Scala, Postgres, Redis and MongoDB is going to be hell on the developers. The developers (and the product) would likely benefit from some serious triage work. Get rid of half your middle languages and half your databases, because they are redundant and doing so will make your life easier. Great engineering depends very much on deciding what you can get rid of.

How this relates to freelance work, I couldn't tell ya. By hopping from project to project it seems like you're going to be exposed to a mind numbing number of technologies. Sounds like fun actually, but it's a different animal from full-stack development. Most of the successful freelancers I've met focus on a particular technology. E.g. Mongo contracts out experts in their database, some people specialize in search technology, others do HBase. Nobody does all of those things at the same time.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#52
post #36

I don't, for the most part. The trick that I've found is to understand the underlying theory and don't sweat the individual syntaxes or design patterns. The new platforms of today have a lot in common with the platforms of yesterday. The state of the art languages of today are combining theory and technology which has existed for decades. Tomorrow's Joomla will be doing things in a way very similar to yesterday's Wor…

> Another thing to note, if you bounce around like this, you will never get true mastery over a particular language or framework. I think this is a bit unfair. I find myself rapidly getting to the point of expertise where other people start asking me questions, just because I didn't have to spend time going from "dumb newbie" to "intermediate"--but being able to start at "intermediate" because of the built-up knowled…

That's a fair assessment (and it mirrors my experience as well), but in the context of my comment, I consider mastery to be a level of knowledge and experience exponentially above the expertise which you refer to.

Mastery of a language, to me, is an innate understanding not only of the language, but of its behavior under most circumstances. Mastery is being able to look at a core dump and be able to identify the cause as GCC exploiting undefined behavior to optimize code, and you can fix it with these keywords or compiler arguments.

Mastery of a theory is not only understanding its benefits and complexity, but its shortcomings and knowing how to compensate for them. Mastery of sorting algorithms is knowing when a bubble sort is more performant than a binary sort, and knowing how to determine when to use one over the other.

Mastery is the act of pushing up against the edge of all human understanding of a particular topic.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#53
post #37

You jump around jobs and see where it gets you. Eventually, you realize how to pick and choose your tech. I got real burn out with front end, with emberjs, angularjs, and now react. I'm going to just wait this out until ES6 come about and see where that go. I think in general I moved toward back end with all the big data and data science is going to be at. And now I'm going back to school to become a data science pra…

> I've seen people talking about how full stack is unicorn. I'm a full stack but I'm experienced in many technologies Can you debug your runtime (Ruby, Python, the JVM, whatever) in gdb? I can, and I still don't consider myself "full-stack"--both because I leave JavaScript to JavaScript people, but also because if you asked me to debug a kernel I'd look at you and just shrug. The stack goes down past your application…

True, but then really no one could be considered a "full stack" developer. Personally, I consider "full stack" to be just a blanket statement to mean people who have no problems wearing different hats and can figure things out to get the job done. Unless they've been pigeon-holed their entire careers due to enterprise specialization or are just that closed-minded to learning new things, I think most good developers end up becoming "full stack" after enough time.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#54
post #37

Earlier quoted context omitted.

> I've seen people talking about how full stack is unicorn. I'm a full stack but I'm experienced in many technologies Can you debug your runtime (Ruby, Python, the JVM, whatever) in gdb? I can, and I still don't consider myself "full-stack"--both because I leave JavaScript to JavaScript people, but also because if you asked me to debug a kernel I'd look at you and just shrug. The stack goes down past your application…

True, but then really no one could be considered a "full stack" developer. Personally, I consider "full stack" to be just a blanket statement to mean people who have no problems wearing different hats and can figure things out to get the job done. Unless they've been pigeon-holed their entire careers due to enterprise specialization or are just that closed-minded to learning new things, I think most good developers e…

I think "full-stack" means, when translated out of marketspeak, "you won't get any support or help from anyone else, so you'd better be self-sufficient at all things."

But I am a cynic.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#55
post #5
post #4

Turn your news feed into push mode instead of pull mode :) HN is the only site I visit for tech news. The rest of the news I get through newsletters. I follow about 20ish, which I sift through each week to stay updated. JavaScript Weekly, HTML5 Weekly, Node Weekly etc has me covered and a lot less stressed about staying updated. Basically, just Google [Topic] weekly or newsletter and subscribe to a few. If they don't…

You misunderstood my question ,what i meant is how do you learn most of the new technologies and not forget them after a while

Oh, I'm sorry. My bad. I don't really get what you mean - have you just copy-pasted or actually used stuff by reading docs?

Firstly, you can't possibly learn everything. I once was in a spot where I tried everything, desperately trying to learn. This was probably the worst part in my learning curve - not being able to tell what's important and what's not.

So, I'd recommend you to pick something and stick with it for a while. This way, you give yourself time to do some focused learning and keep up with specific best practices. Last year I focused on Angular and Node. This year it's React and RxJS.

Tldr: choose an area, focus on it for a while until it sticks. Put the other techs aside until you've learned.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#56
> 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.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#57
post #47
post #30

I don't. I understand the principles of the stuff I use and can draw upon past experience to analogize to new stuff. Like, despite what a lot of the Node community will tell you, a Reactor model on N threads (where their N = 1) is not new. I saw it in Java, with Netty, most of a decade ago and you see it today, albeit abstracted from you a little, in Play. At a gig last year, I was able to build out a plan of attack…

Thanks man. Building on previous knowledge seems like a good advice, i was mostly closed up in my work and by nature i don't like joining forums and looking up what other devs do, so when i started freelancing regularly, i found it to be necessary to keep up with the world, i guess i wanted to be one of the good developers when i started learning, and somewhere i started overestimating them thinking they can do anyth…

No problem. =) Everybody fakes it. Eventually you make it.

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#58
post #46
post #16

Earlier quoted context omitted.

But most developers i know are proficient in multiple frameworks and languages, that's why i'm trying to be at least good in them, i suppose the only way to do so is to create a repo for each new thing i learn in github and make sure to put a new project in each rep every week

Are they proficient, or are they good at faking it until they become proficient? I have a lot of tricks in my toolbox to seem ready and productive, while I'm scrambling behind the scenes to actually become ready and productive. (Difference is, I'm willing to admit it, because I am confident in the value I create.)

I'm curious to know how you admit it. I recently completed a website redesign for a relative in Brazil. He wanted to use the existing MySQL db and some PHP functions, and expand on both. I had some experience with HTML, very little with CSS and Javascript, and had never built a website using a text editor alone for the code. I'd just completed the HTML/CSS, JavaScript, and jQuery courses on Codecademy and was excited to apply what I'd learned, but I made it very clear that I wasn't an expert at frontend code nor design and had no PHP nor databse experience and would need to learn them to complete the project.

He showed me various websites and features he liked, and I recreated them with HTML, CSS, and jQuery designing the new site to his satisfaction in about 5 days. Then, I powered through a couple tutorials on PHP and MySQL for a couple days. Most of the old PHP that he wanted to salvage was filled with deprecated code, so I rewrote it. The data he wanted to store and use for the new site required entirely new db tables. So the new site didn't reuse any of the old code. It took me a month to complete the site and get it online. A few days later, the owner of a quite-a-bit larger company that partners with my relative's company told him that he really liked the new site, and asked for my info. My relative told me that I was far too modest about my ability before I took on his project; that I wasn't an amateur at all.

I know that I was and still consider myself very much an amateur, but I know I can (and enjoy to) learn new technologies pretty quickly. I take pride in doing a job well, and really believe I'll provide a lot of value to the projects I work on. I just can't sell myself without being completely honest about areas that I know I have lots left to learn. How can I be completely honest without seeming incompetent next to a 'professional' (and great salesman) who only knows how to plug content into a CMS template? How do you express your confidence in the value you create when you're aware you will have to learn a lot to create that value?

Re: Ask HN: As a Full stack developer how do you keep up with all the technologies

#59
post #58
post #46

Earlier quoted context omitted.

Are they proficient, or are they good at faking it until they become proficient? I have a lot of tricks in my toolbox to seem ready and productive, while I'm scrambling behind the scenes to actually become ready and productive. (Difference is, I'm willing to admit it, because I am confident in the value I create.)

I'm curious to know how you admit it. I recently completed a website redesign for a relative in Brazil. He wanted to use the existing MySQL db and some PHP functions, and expand on both. I had some experience with HTML, very little with CSS and Javascript, and had never built a website using a text editor alone for the code. I'd just completed the HTML/CSS, JavaScript, and jQuery courses on Codecademy and was excited…

"I don't know how to do that. But I know how to do X and Y, and can be productive using that by Z date. Is that an acceptable starting time for your project?"

That said, I don't consult or contract anymore, I work FT instead. As a FT employee, seeking a fit requires a greater investment of time on both sides, and a slight misalignment can prove valuable to both parties.

Post reply on HN