Ask HN: Why actual rockstar programmers do not say anything?
13 comments
As a full-stack-but-primarily-back-end web developer, I somewhat resent the OP's implication that web developers are lesser than other developers. Why are we distinct from "algorithm developers" and "application/db developers" when what we develop are applications that interact with databases and often require fairly sophisticated algorithms? Can't we just agree that different types of developers work with different technologies and skillsets and one isn't inherently better or worse than another based solely on which technologies they work with?
All that aside… the "rockstar" attitude rankles, though really, it's something you'll mostly see in job listings and such than from web developers themselves. I can't recall meeting any developers in this industry who would refer to themselves as a rockstar with a straight face, but I've met a couple bosses who said things like "we only hire rockstars" and such. So to the extent that a skilled web developer seriously says they're a rockstar, they probably only do so to angle for a job, I'd imagine.
All that aside… the "rockstar" attitude rankles, though really, it's something you'll mostly see in job listings and such than from web developers themselves. I can't recall meeting any developers in this industry who would refer to themselves as a rockstar with a straight face, but I've met a couple bosses who said things like "we only hire rockstars" and such. So to the extent that a skilled web developer seriously says they're a rockstar, they probably only do so to angle for a job, I'd imagine.
Call me an ahole, but I really think that web dev does not require nearly as much deep knowledge of computers as an engineer working on lower levels of the stack. Each web app usually solves the same tired problems again: interface with a db, present data, cache stuff, handle user accounts etc.. There is some meaty stuff - perhaps caching and serious performance optimization, but most of a web app is either front-end CSS stuff, or interfacing with a DB to fetch data.
Yes, there is definitely work to be done in making a web-app, and i don't think its easy at all to get a website to be really fast or get the styling right across 100s of devices, but its not always technically challenging work IMO. I am NOT saying that web devs are worse, but yes, I am saying that the job generally requires less deep technical knowledge, and perhaps more of other skills i know nothing about :p This is the rationale for why I choose not to go into webdev, because i love solving meaty problems. I would love to hear your perspective and be proven wrong though.
Yes, there is definitely work to be done in making a web-app, and i don't think its easy at all to get a website to be really fast or get the styling right across 100s of devices, but its not always technically challenging work IMO. I am NOT saying that web devs are worse, but yes, I am saying that the job generally requires less deep technical knowledge, and perhaps more of other skills i know nothing about :p This is the rationale for why I choose not to go into webdev, because i love solving meaty problems. I would love to hear your perspective and be proven wrong though.
This entire comment is just nonsense. Web development is equivalent to any other level of the computing stack. That is, there are good developers working on solving complex problems, and bad developers churning out mediocre software that doesn't really do anything "meaty".
I see absolutely no evidence that web development is any less technically challenging than any other field – the fact that there are loads of developers churning out cookie-cutter CRUD apps doesn't mean that's the whole field.
I see absolutely no evidence that web development is any less technically challenging than any other field – the fact that there are loads of developers churning out cookie-cutter CRUD apps doesn't mean that's the whole field.
I will not call you an ahole because you're at least conceding that you may be wrong about web development not being "meaty." Let's see if I can argue that there is indeed meat in web development.
Let's look at your "tired problems." "Interface with a database." Yep. Hey, which database? Do you use the tired and true MySQL? Do you trade up to Postgres's improved features in exchange for possibly reduced compatibility? Do you do NoSQL like all the cool kids? Great, now which NoSQL database? Will your app really benefit from it? Okay, you picked a database; do you write SQL directly, or use a pre-built database layer/ORM of some sort? If the former, do you know how to escape your arguments and make sure you're not inviting injection exploits? Do you know how to write efficient queries that will touch as few database rows as possible? If the latter, will it hide needed capability from you or behave much slower than using straight SQL? What are the trade-offs? Do you perhaps use specialty databases like Solr for search or Redis for key-value storage in addition to your main one? Is the increased complexity worth the potential speed or flexibility increases? Can you make sure queries to those databases are secure too?
Or "handling user accounts." Oh my God, okay. Do you let people sign up with usernames? Just email addresses? Do you allow multiple accounts with the same email address? If someone has signed up with the username "Helen" (with an ell), do you let someone else sign up as "He1en" (with a one) or "He|en" (with a pipe) and possibly impersonate them? How do you store the password? No, that's wrong. No, that's also wrong. How do you let people reset their password if they forget it? Oh, wow, that's very wrong! Are you storing credit card numbers or addresses or other personal information? How do you do user permissions, so some user accounts have administration permissions that others don't? How do you avoid XSS exploits that might allow an unprivileged user from taking over an administrator account? What if you want someone who's between a normal user and an administrator who has some edit privileges but can't take down the whole site?
Okay, got all that worked out? Okay, now make it respond in 200ms or less from all points in the world. And compliant with these government regulations the client is just now telling you about two weeks before the scheduled launch. And also look and work the same in Spanish, Traditional Chinese, Simplified Chinese, five different strains of Arabic, and, most cruelly, German, whose long words bring many unprepared web designers to tears. And on mobile.
Granted, many devs will work with a framework or CMS that helps solve some of these issues for us, but even then we need to understand the inner workings of that system and what the trade-offs are in order to truly exploit it.
Let's look at your "tired problems." "Interface with a database." Yep. Hey, which database? Do you use the tired and true MySQL? Do you trade up to Postgres's improved features in exchange for possibly reduced compatibility? Do you do NoSQL like all the cool kids? Great, now which NoSQL database? Will your app really benefit from it? Okay, you picked a database; do you write SQL directly, or use a pre-built database layer/ORM of some sort? If the former, do you know how to escape your arguments and make sure you're not inviting injection exploits? Do you know how to write efficient queries that will touch as few database rows as possible? If the latter, will it hide needed capability from you or behave much slower than using straight SQL? What are the trade-offs? Do you perhaps use specialty databases like Solr for search or Redis for key-value storage in addition to your main one? Is the increased complexity worth the potential speed or flexibility increases? Can you make sure queries to those databases are secure too?
Or "handling user accounts." Oh my God, okay. Do you let people sign up with usernames? Just email addresses? Do you allow multiple accounts with the same email address? If someone has signed up with the username "Helen" (with an ell), do you let someone else sign up as "He1en" (with a one) or "He|en" (with a pipe) and possibly impersonate them? How do you store the password? No, that's wrong. No, that's also wrong. How do you let people reset their password if they forget it? Oh, wow, that's very wrong! Are you storing credit card numbers or addresses or other personal information? How do you do user permissions, so some user accounts have administration permissions that others don't? How do you avoid XSS exploits that might allow an unprivileged user from taking over an administrator account? What if you want someone who's between a normal user and an administrator who has some edit privileges but can't take down the whole site?
Okay, got all that worked out? Okay, now make it respond in 200ms or less from all points in the world. And compliant with these government regulations the client is just now telling you about two weeks before the scheduled launch. And also look and work the same in Spanish, Traditional Chinese, Simplified Chinese, five different strains of Arabic, and, most cruelly, German, whose long words bring many unprepared web designers to tears. And on mobile.
Granted, many devs will work with a framework or CMS that helps solve some of these issues for us, but even then we need to understand the inner workings of that system and what the trade-offs are in order to truly exploit it.
Mostly people get these notions when web developers call themselves "full stack" when their stack starts after the DB delivers them data and stops when they deliver data to a browser. There's a whole lot of stack under & including the database and a whole lot in the browser & js engine.
That's an interesting argument, but in the field of web development, "full stack" has a particular meaning, so you're kind of arguing that a widely-used and -understood term in this field should have a different definition than what's currently agreed upon, and, well, I don't think many people are going to be too receptive to that.
Absolute nonsense.
- Developing for the web is not 'probably easiest one' – it's equivalent in complexity to any other part of the software stack. The fact that there are lots of generic CRUD apps that are being developed does nothing to change that – the majority of applications are boring LOB apps, the majority of hardware drivers are barely functional repackaging of reference implementations, and so on.
- There aren't really any 'rockstars' in development. I'm sure there are some knobs out there who call themselves that; I've never met or heard from one, despite a decade in the web development industry.
You've clearly got a stick up your arse about something; I suggest you'd be better served spending your time learning more about how the industry actually works, and less time writing this sort of dreck.
- Developing for the web is not 'probably easiest one' – it's equivalent in complexity to any other part of the software stack. The fact that there are lots of generic CRUD apps that are being developed does nothing to change that – the majority of applications are boring LOB apps, the majority of hardware drivers are barely functional repackaging of reference implementations, and so on.
- There aren't really any 'rockstars' in development. I'm sure there are some knobs out there who call themselves that; I've never met or heard from one, despite a decade in the web development industry.
You've clearly got a stick up your arse about something; I suggest you'd be better served spending your time learning more about how the industry actually works, and less time writing this sort of dreck.
[deleted]
Competition. Because all startups need a frontend to get users, there are many independent firms hiring in that market, and because demand is high, there are many developers as well. Because the market is both liquid and very competitive, devs need to SCREAM VERY LOUDLY to be heard (minus a few folks who get snapped up early by highly desirable employers like Google, Facebook, AirBnB, or Uber and then quietly sit and work, often moving more toward backend as their careers progress).
There are relatively few hardware-level companies and hardware-level software engineers. There are relatively few FPGA companies and FPGA engineers. There are relatively few OSes, and relatively few OS-level software engineers. Within these fields, everyone knows who the good developers are based on their work.
There are relatively few hardware-level companies and hardware-level software engineers. There are relatively few FPGA companies and FPGA engineers. There are relatively few OSes, and relatively few OS-level software engineers. Within these fields, everyone knows who the good developers are based on their work.
It's an accessibility effect.
Because "front end web development" is the most easily started of the items you list, anyone with a browser even most mobile phone browsers are sufficient these days, there is a larger pool of "interested" people who recognise the topic. Since the larger pool is more diverse it starts to exhibit behaviour we consider more typical of "the general population" instead of "us programmers".
The modern trend of ninja and rockstar developers is nothing more than normal group psychology. Your options are "run away into a more specialist niche" where the population is more to your liking, "ignore it" like reality tv, or "go native" and learn how this new aspect of technical culture can be useful to you.
Because "front end web development" is the most easily started of the items you list, anyone with a browser even most mobile phone browsers are sufficient these days, there is a larger pool of "interested" people who recognise the topic. Since the larger pool is more diverse it starts to exhibit behaviour we consider more typical of "the general population" instead of "us programmers".
The modern trend of ninja and rockstar developers is nothing more than normal group psychology. Your options are "run away into a more specialist niche" where the population is more to your liking, "ignore it" like reality tv, or "go native" and learn how this new aspect of technical culture can be useful to you.
Perhaps you simply hear more about Web devs because most Web gigs are relatively small - compared with many of the lower-level jobs. As a result, Web folks are constantly advertising themselves to find the next gig. Also based on this small-job phenomenon, these people may have better skills at marketing themselves.
The other thought that comes to mind is that the results of Web skills are usually apparent in a very short time after the person begins working. The user-interface is the "face" of a long path of other systems that make the whole thing possible. Hence, those persons closest to the UI get associated with the results of all the systems working in tandem. It's as if they themselves made it all happen.
The other thought that comes to mind is that the results of Web skills are usually apparent in a very short time after the person begins working. The user-interface is the "face" of a long path of other systems that make the whole thing possible. Hence, those persons closest to the UI get associated with the results of all the systems working in tandem. It's as if they themselves made it all happen.
I would say there are people in all of these categories with egos. Quality work should speak for itself really.
Maybe we get the impression that people who work with web facing technologies are the loudest because they will have very popular repos on GitHub. Remember though, there are plenty of people who have solved equally complex problems who cannot share their work for various reasons.
Those people probably have a right to say they are a rock star, but not a lot of people will ever know outside their job / company.
Maybe we get the impression that people who work with web facing technologies are the loudest because they will have very popular repos on GitHub. Remember though, there are plenty of people who have solved equally complex problems who cannot share their work for various reasons.
Those people probably have a right to say they are a rock star, but not a lot of people will ever know outside their job / company.
[deleted]
What makes a rockstar? Their audience.
There are more web devs or web devs wannabes in the world ready to consume content from more experienced ones, making them "rockstars" as you call.
There are more web devs or web devs wannabes in the world ready to consume content from more experienced ones, making them "rockstars" as you call.
This is true, but I'm not sure it's only limited to IT or programming, I'd say it's present in more or less any human activity.
You mean bill gates is not a rockstar?
All the rest are NINJAS!!!!!
I get put of applying for jobs when they request a "Ninja". Sounds like a bollocks startup full of kiddies who think they know way more than they do.
algorithm developer?
I'm guessing this is OP's title for software architects.
Very close to this definition, but probably in the middle, think about Map/Reduce, think about parallel computing models, think about indexing, searching and many other things which are related to architecting, designing and optimizing how things work
Perhaps: web devs are so ashamed of their privacy-violating, resource-hogging websites that they need something about themselves to feel proud of so they give themselves a dramatic job title and say "I'm good".
- hardware level - they sit and work, they do not call themselves rockstars
- low level, fpga - they sit and work, no rockstars
- os level - sit and work, no rockstars
- algorithm developers - sit and work, no rockstars
- application/db developers - sit and work, no rockstars
- web devs, js - THEY ARE ROCKSTARS,
if we look at above areas, probably easiest one maybe web devs, who knows maybe they have smaller salary than other areas too, but when it comes to PR, they are always rockstars, they are cool, why the heck this is always the case, who works hard don't get attention, attention will be given who uses that product or sales.