Ask HN: Why actual rockstar programmers do not say anything?
Programming and computers are huuuuuuuge area, if we look at from bottom to the top,
- 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.
(
20 comments
| 13 points
| on HN
)
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.
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.
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.
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.
- 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.
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.
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.
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.
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.
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.