21 year olds won't know very much of anything in general.
A 21 year old 3rd year college intern is... 21 years old
Three quarters of a four year computer science degree doesn't change the fact they're a 21 year old.
Even in the topics they have covered, the knowledge won't be very deep.
A true mental model of concurrent programming is not something easily obtained.
Frankly, most 35 y/o engineers don't truly appreciate the intricacies of intra-thread concurrent algorithms, unless it's their specialized area.
Frankly, most engineers in the industry are too lazy to learn SQL well.
Lower your expectations of 21 year olds. Lower your expectations of the workforce in general. Hackernews is a self selecting community of tech works who study their job in their spare time as a hobby.
Most people I've worked with go home and watch football after 5pm.
That's a terribly stupid way to think about it. For one, it's not like you take one class and you're done with school. For two, it's not like your "45 credit hour" class is literally just 45 hours of "learning". If it's a computer science or engineering class, you're likely going to have homework assignments and projects that will consume as much or more time than the face to face instruction.
Also, usually what you're learning in class are the fundamentals that undergird what you need to know for software development in the job. The basic underpinnings and context to understand what you're learning those first two weeks on the job.
And if you're going to be that dismissive about what you learn in a college course, I'll tell you most of what I learned the first two weeks on the job: how to use the specific IDE the team I was hired onto preferred, how to build their specific project (barely applicable outside the project), how to contact IT to get a ticket to get them to install the IDE because I didn't have permission to, how to use the timecard website to log my hours, where the people on my team prefer to go out for lunch, a few hours of HR sexual harassment and cybersecurity training, how to set up my 401k and medical benefits, etc. etc. Basically, nothing to do with "computer science" which is what the original post was about.
4 month semesters is about 17 weeks, which only accounts for a little over two and a half hours per week. That's less than the time in lectures in my college, and doesn't account for any homework or lab time.
> A semester long class is about 45 hours of learning.
Assuming your semester is twelve weeks long (as is the case at my university), that's less than 4h/week. I'm guessing you're only counting lectures as learning. If you only go to lectures for learning and don't do any kind of work on your own, no tutorials, no office hours, no revising for exams, no practice exercises, no homework, no discussions with your peers, nothing... Yeah, you'll probably feel like your first two weeks at the job is a crash course. But I'd say you failed at taking advantage of learning at a university to its fullest.
You are totally right, but I would add that even people who take advantage of university also still are only going have been able to hit very few subjects deeply by the 5th or 6th semester.
They are still only 21 years old, and just literally haven't had as many afternoons to spend tinkering.
All of that together still hardly changes things. Even if we're very generous and say that you managed to spend an unrealistic 16 hours a week on one topic in university (unrealistic as you are rarely doing only one class in uni), that's still tiny compared to the mandatory 40 hour work week that you will have at a full time position.
The difference is at a university you have to learn ~5 different subjects at once. On the job you only learn one. It's more of a "Breadth first" approach.
What you learn on the job is largely up to you. You can choose to focus narrowly on your job and learn nothing more. Or you can stick your fingers in more pies to learn much more.
I'm currently in uni and most courses are 3-credits meaning 45 hours of lectures per semester + 90 hours of tutorials, assignments, and studying.
Those 45 hours of lectures are usually condensed material with little to no time to practice. It's expected that you practice during the other 90 hours (and on your own time if you plan on having straight A's).
While you may get more hands-on experience in a few months of working full-time, you usually learn much fewer concepts.
All of those hours of practice are merely covering what was already gone over in lecture, only it is largely unguided, and you're not really expected to correct your mistakes and do it right once the assignment is graded and handed back to you.
Once you get into a job, you're constantly revising past mistakes, doing new things and all the while you have coworkers who are helping you- they don't want to wait for you to make a mistake, they want to help you get it right the first time if you need the help.
Uni courses rarely cover real-world knowledge that you will use on the job. Aside from some specialized jobs, most of what they teach you is either too low-level or mostly useful as background knowledge. So many practices aren't covered in college courses- even things as simple as version control have only recently started to become common.
You're going to be learning a lot on the job, and at a decent job what you learn will make what you went through in college pale in comparison.
> you're constantly revising past mistakes, doing new things and all the while you have coworkers who are helping you- they don't want to wait for you to make a mistake, they want to help you get it right the first time if you need the help.
I genuinely don't think most of workplace actually reassemble this ideal. Sometimes you learn ... plenty of times you do something repetitive. Sometimes you don't even learn about own bugs (hello agile). And sometimes they give you great advice and plenty of time they just don't.
We have this discussion basically every new semester, honestly it's tiring. On the one hand we _are_ removing more and more content from our courses, not because we want ease the load on the first year students, but because we have to catch a increasingly large portion of students up to speed on topics that should have been covered in school.
Related: one of the faculties here recently announced the introduction of a threshold grade. If you were bad at school, you are not taken into consideration, even if there are available places.
I worked at NCSA while I was in college, and in theory I understood how special that was but in practice I'm still absorbing what that meant. Having a place on campus doing software R&D is better in some ways than an internship, because it can be titrated over a longer period of time. Most colleges don't seem to have something like that. I know I've heard of such things at MIT, Berkeley, University of Illinois, Stanford, maybe RPI and Johns Hopkins, but not a peep from most others. I don't know if that's a PR failure or an educational one.
I had a couple coworkers who were in the same classes as me and as part of trying to improve my time management I'd ask them how long the homework took and would get ridiculous answers like 'an hour' (2+ week assignments usually take tens of hours). I couldn't tell if they were smarter than I thought, braggarts, or liars, but after I switched from a support role to a coding role, in the space of a semester I was doing my homework in 2-3 hours. Often those homework problems are just a bit harder than an interview question, but without practice you're improvising the whole thing and that's a lot of effort.
Before we started talking about 10,000 hours, I already had a rule of thumb that your competency as a developer tends to ratchet up at 100 hours, and rather substantially around 1000 hours. An internship will definitely hit 100 hours, but 1000 is still easily achievable in a year. 10k hours might as well be an imaginary number. That's longer than they've been in school and so feels like an unreachable finish line. Demotivating for sure. 1k just means "work hard for a bit".
Isn't that 45 hours just time sitting in class, listening to lectures? How much learning really happens then, vs study time outside of class, doing the assigned problems, completing assignments, etc?
I spent a lot of time in the computer lab waiting for my roommate to figure out that CS was not the degree for him. I got a pretty good census of the sorts of things that other classmates got stuck on, probably informs my strong feelings on the value of quality tools over just tools.
There were certainly a lot of people who didn't really understand the question, and I couldn't really help them much without risking the poorly worded guidelines on what would earn you an expulsion, but there were a lot of people spending a lot of time banging their heads against typos and simple structural errors.
I learned early on that the facts and tasks I biff on are often the things I remember the clearest later on, but also that most people are not like that. They remember the things that they got right easily on the test. I'd wager that for most of them, that time spent wrestling with the computer provided very little to no growth opportunities at all. 10 hours on a homework assignment might have yielded at most 90 minutes of actual progress.
That is not true. I learned linear algebra on the job as it became required. Just like everything else I’ve needed to learn.
This whole “gaps” argument is just people who’ve bought into a system. People coming out of uni have “gaps” as well just different gaps… gaps rich kids have so it’s ok with Google.
Haha yeah. I've been tossed resume with fifteen minutes notice and told "we need you to be one of the interviewers" when I had much less experience than that. Of course that was at small companies and I was one of the more experienced people there.
You know I used to be so busy with learning things when I was younger but now I've started watching football at the weekends. Finally experiencing the normie life :D
> Now I feel obliged to work even harder to make a few million dollars out of it before I'm 35.
35-year-old here, with a similar box of CS knowledge floating around. Comfortably sub-million, but with a nice house and a couple dogs.
You really aren't obliged, and you don't really need to "make some money" out of it. More money would be nice, don't get me wrong. But you said you learned it because you enjoyed it. Which I did, too. I got my money's worth out of the learning.
You are not obligated to financialize everything you enjoy. It's super important to understand that.
The mortgage anxiety--I get that too. YMMV, but for me, all it took was practice. I don't think about the mortgage on my house. I've owned it for about five years. The money goes out every month. I work on renovating a room or building some furniture or going for a walk with my dogs. It need not be a terrifying specter; it'll either get paid in due course or I'll die and won't have to worry about it.
I think there are a lot of brains (and mine is definitely one) wired to make a bigger deal of things than necessary to provide a sense of direction and meaning, but this one is so abstract and so luck-based that, for me at least, it was deeply valuable to fight against it. I kicked it into the back of a closet, and for me it's a lot easier now to just live.
With your career you are trading time for money. It makes complete sense to optimize that. Most of the professional work you do will not be what you would work on in your free time anyways, it’s work to make some other person rich.
Maybe? Like--define optimize. VC-chasing (alluded to by the great-grandparent poster elsewhere in-thread) is almost certainly less optimized from an EV perspective.
If it's one's dream, absolutely chase it--but it should not feel obligatory because you absolutely can have a lot of happiness now without precluding later happiness, too, if you so wish.
If you're only trading time for money in your career, IMHO, you don't have a career, you only have a job.
At the least you should also be trading your time for expertise, networking, and accomplishment, although I would also recommend some degree of self-actualization and everyday enjoyment (if you're in a position to seek for those).
This ties back really well to the OP. The most important thing in interviewing is dividing people into these two categories. 10 years of experience clocking-in and clocking-out is no experience at all. I'll hire some kid who is a go-getter over that.
Unfortunately in academia it only matters if you hit your grades, which are gamed to hell and back. So you really can't tell at a glance if an A student is going to be good or bad, I hired based on a transcript once and got burned so badly that I'll never do it again.
Aiming to make a few millions (presumably in savings) before you are 35 is extremely ambitious and will most likely not happen. Why set yourself up with such a goal, and how do you know it will even correlate with happiness in the end?
You are much better off developing a specialty that you enjoy. Money is a side-effect of happiness and persistence.
Frankly the answer is expensive hobbies and/or hobbies requiring space. And "Money doesn't buy happiness" is only said by people who have enough of it to not worry.
Yeah "money is not everything" but I'd be able to do more things I like if I had house and spacious garage. But that's $$, $$$ if I also want to live in place with reasonable commute
> but I'd be able to do more things I like if I had house and spacious garage. But that's $$, $$$ if I also want to live in place with reasonable commute
My house is 2000 square feet. I have a recording studio and a wood shop and too many 3D printers. I am getting a garage permitted for another ~800 square feet. The place cost $480,000 four years ago and is around $620,000 now on Zillow. I am a fifteen minute walk from a train and can be in downtown Boston within the hour.
There are ways to get what you want other than "be an extremely unlikely curve-breaker of a success". It frequently means "not being in San Francisco or New York", granted, but...you've got options.
Are you really promoting your half a million dollar home lifestyle as the affordable and approachable way? And it appreciated how much over four years?
Im glad for you but I don't think you are making the point you intended.
It is absolutely affordable—for a software engineer. Boston salaries aren’t SF, but you aren’t going to be hurting. Other folks? No, and that’s an entirely different problem we need to be solving. That’s why tomorrow night I’m going to a town meeting to argue in favor of a new 500-unit apartment building that my neighbors don’t like. (I bought this house to live in. Add more supply, bring down those prices!)
But I don’t expect the person to whom I replied to be concerned with individually solving it either, and so while I think we can solve our own problems while being mindful of our society’s, the latter didn’t seem appropriate here.
Really? I'm in a similar situation outside of Vancouver and my house price doubled since I bought it. The salary we pay for the position that I used to purchase it went up maybe 10% in the meantime, while the financing costs went up by 100%.
You don't really need a graph to understand that change...
Good on you for fucking with the NIMBYs though, they're the reason house prices went up by an insane amount.
I haven't been out that way in years but my understanding is that Vancouver is a SF-tier disaster though, no? Huge influx of semi-speculative money into real estate.
My house, on a 30-year, 10% down, if bought today at the Zillow valuation + my property taxes and insurance, would be about $3800/month. That is absolutely not nothing, but the same square footage in Alameda, CA--a better substitute in some ways, esp. re: transit--is in the $1mil to $1.25mil range, which would be more like $7500/month (if you could make the 10% down at all).
Given that staff+ compensation in the Boston area is pretty reliably north of $200K these days, these are much friendlier numbers. And again, Boston is still an expensive area! There's lots of places in the country that are cheaper. I use Boston as an example because even on the edge of the suburbs there's still decent-to-good public transit. Go just down the road to Providence, which has a thriving local scene of its own and is still on the commuter rail to Boston but otherwise kinda lacks local public transit, and you can get a house like mine that's roughly as walkable to the basics (restaurants, supermarkets, etc.) for like $380K. And if your job is in Boston you can still be at South Station in under an hour and a half of sitting on a train that, IMO, beats BART and CalTrain pretty solidly, let alone driving (which I've known a lot of people, historically, to do from Providence--and that seemed awful).
Me, I work mostly-remote, so I'm not tied to being here in the first place. I just like it here. But realizing that there are significant options is important.
Average home price in the US is $375k. If you add a $100k-$200k to that price, a SE should be able to save and afford a house.
My hobbies take up a lot of space so I understand what you want. We had to move out of an in town location to get the house we wanted. A 1,000sqft in town house the same size as our duplex rental wasn’t going to cut it.
Luckily I was able to find jobs in an area 45 minutes away from downtown with virtual worker status (3-5 days a month in office max). I changed jobs and was able to find many other ones in the same area.
Unfortunately, in a group made up of myself and Jeff Bezos, our average net worth is $90 billion. Jeff does a lot of work in that average though. In the same way, it's very possible this person is in an area where the cost of life is absurdly high and the actual price of homes where they are is not reflected in the average, due to the dream that software engineering is massively profitable, which increases the cost of life, which makes the need for a massive salary higher, which...
This phenomenon is real, and the best way to combat it is to Go Elsewhere. I'm still in a pretty expensive spot. But I'm very comfortable having somehow managed to never work for a big-tech-payin' big tech shop.
There's a lot of great places out there. Believing that we have to all cluster around a few cities is pretty bad for us.
Why are you living in the high COL area? There are more developers working outside of Big Tech/FANG/West Coast than inside.
The West Coast does have a higher employment of Software Developers per 1,000 people. Especially SF/San Jose. Texas seems to be increasing more than other areas outside of California and Washington.
It doesn't. Money buys comfort, power, prestige, security, ..., but not happiness. A happy person is a happy person. An unhappy person is an unhappy person. It sucks in a way but from a different pov it is a wonderful equalizing fact of human experience (like the bliss of orgasm, available to poor and rich alike).
> Money is a side-effect of happiness and persistence.
A million is a lot but my first reaction to your comment was this is something only wealthy people can afford to say. Especially in the US where we don’t have universal healthcare.
Just typing this made me realize I need concrete, achievable goals though so I appreciate your comment. I am not the gp but this is something I expect a lot of us need to work on. Something like:
1. What are my financial goals?
2. Is it realistic to have those goals?
3. How do I know if I am on track? If not, what can I do to correct my course?
Money is largely a product of working, but broadly uncorrelated with time or effort. If you think this is untrue, try working a minimum wage job or two for a while. This shouldn't stop you working hard for returns. but it should offer a reality check.
Money doesn't buy happiness, but it can remove stressors. However realistically this is linked to income-outgoings / debt. Earning a lot but being highly leveraged and living an expensive lifestyle ends up not being much less stressful.
I may work until I'm 70. I may be dead before I'm 50. I don't want to be miserable today in order to live a mythical good life in the future. So I plan assuming the most important thing is being content day in day out.
I guess I have a high discount rate. It's not obviously right!
Using a discount rate is a decent start, but it is a vast simplification of how people think. If we want to make it a little more nuanced to capture more of the human condition, I would suggest:
1. Allowing one's discount rate to vary with age.
2. Varying the time horizon.
Exponential decay probably doesn't map very well to how people think across different phases of life.
For many people, their discounting may change roughly as follows:
- When you first pop out, life is only the present.
- When young, e.g. 2 or 3 years old, kids may want things very soon, within seconds, minutes, maybe hours.
- Young'uns start to understand money. They might look towards saving for their first bicycle. Now time horizons look more like 1 to 12 months.
- As people start to develop educational and professional goals, they allow more deferred gratification: preparing for their career or buying a house. This horizon might be around 1 - 10 years.
- Somewhere in a career, people might start planning 5 - 50 years out, often for for kids and retirement.
- As people approach their end of expected lifespan (or face a life threatening illness), they probably care a lot about:
-- personally, living in the moment. This might mean checking off the bucket list as well as high quality relationships
-- financially, allocating money away from themselves towards emphasizing long-term, inter-generational goals, like providing for their family or donating to charity. These goals have 20+ year horizons.
- The ultra wealthy have the means to create charities with 50+ year time horizons via an endowment.
Why would not achieving the goal correlate with happiness? Aiming for something high only is a problem, when you tie your happiness into getting there. I find the reaching alone very fulfilling.
As a side note, finding and focusing on developing a speciality that I enjoy is a lot harder than making a lot of money. For me at least.
Happiness is not something you achieve by fullfilling some dream. What counts is the day-by-day, or "the journey"... once you get there, trust me, it will just feel pretty empty after perhaps a day or two of excitement, and you'll just have to find a new "dream". Just enjoy the little things. Difficult to quantify but I bet that watching a football match where your team wins (if you're a football fan, and obviously through no action of your own other than just sitting there watching) makes you feel much happier (for a few hours) than any dream you could fullfill by your actual actions. Doesn't make sense, but yeah, humans don't make sense a lot.
With the outrageous tech salaries, if you live in a low CoL area, I don't know that saving a million or two by the time you're 35 is such an ambitious goal.
And don't pretend your way is the only way of looking at things. "Money is not important" is something people say if they have a lot of money.
> "Money is not important" is something people say if they have a lot of money.
Well if money was key to happiness, why would people with money say that? Wouldn't you expect the opposite? The reality is money helps with lots of things in life, but it's never more than a means to an end. You should always be striving to enjoy what you can in life as you go, because cultivating a happy life requires being present. Otherwise you'll blow right by the stuff around you, and by the time you get the money you were seeking you may be on an island. That's all people mean when they make that statement.
Sugar, booze, drugs, video games, social media, television, etc. are destructive. Those are unnatural things which are engineered to give a dopamine rush. I've been healthier in periods of my life when I did. Going "clean" is stressful, but lands me in a healthier place. I can't usually do that because of family and social ties.
The odd item on your list is sex. Sex -- in the context of a permanent, stable relationship -- builds social bonds and helps emotionally regulated. Studies show that too.
I'm not going to generalize to anyone else, but for me:
- Casual sex is psychologically harmful.
- Regular sex with e.g. a spouse is healthy.
I find that it (1) Builds a close emotional bond. Conflicts don't seem so important. (2) Emotionally stabilizes me and makes stress go away.
As well as a number of additional positive effects. The older I grow, the more I agree with conservative, traditional cultures about sex: One lifetime partner is ideal. A small number or zero is okay. A large number is bad.
I'll mention: I'm not drifting conservative overall. Some places, I'm to the left of the left, some to the right of the right, some off-axis, and some at the center.
I have been cultivating this mindset for 10 years.
I'm into month 6 of semen retention now and finally have zero urges or frustration at this stage. I eat one meal of meat, eggs, butter a day. Have finally been able to isolate and clearly see the effect listening to music has on my dopamine and happiness (its very bad for it). All of my belongings fit into one suitcase and a backpack. I live in an apartment by the beach. My hobbies are simply short walks in the morning, emotional movies in the evening, programming and reading in quietness during the day alone. Eliminated playing videogames for the most part, Hobbies are reverse engineering and decompiliation modding of childhood N64 games, coding my rts game engine from scratch, coding my programmable bot platform im creating. Reading. Finally i reached that peace you know about. Would love to hear a few things about your routine and how you spend your time or be e-friends e___cr___@gmail.com replace the first ___ with nda and the second ___ with aig :)
I find setting "happiness" as an explicit goal reduces my happiness.
A good book -- more mainstream than most of these comments -- is "Man's Search for Meaning" by Frankl. It has been listed as one of the ten most influential books in the US a few decades ago, although has fallen somewhat by the wayside in recent years. I believe the core thesis. It's worked well for me.
Leading a meaningful and purposeful life, having good relationships, helping people, doing interesting things, learning, and growing tends to be a more effective path to emotional well-being than searching for happiness.
To answer your question directly: My high-level goal is to leave the world a better place than I found it and to have a positive impact on the lives around me.
I don’t understand the need/urge to shit all over someone’s dream. If you don’t agree, why not just leave it? What does anyone actually gain from your negativity??
Do you understand the need to give people realistic expectations, so even if they wish to proceed, at least they understand the chances, and not put all their eggs on something unlikely?
Or everybody should be left to live oblivious to some statistical facts, lest they be hurt?
Most SWEs at the majors are bringing in a few million prior to the 35. If you save your salary it should be pretty trivial.... but it's more a savings challenge than an income challenge due to lifestyle creep.
My circle of friends has three self made 8 digit millionaires in their 20s. I've honestly been slacking.
I don't think I can do it in 1 year. 5 years is perfectly possible.
We live in the golden age of computer science entrepreneurialism.
Venture capital has never been easier to get. The low hanging fruit is largely still unpicked. And, with full remote, hard working highly capable talent has never been easier to hire (hire Europeans, they're overeducated and underpaid).
IMO, not starting a business in the next 5 years would be remarkably foolish.
Just have to write a 35 page business plan, get it reviewed by capable people, have a good idea, and execute.
35 pages! I worked for an IPO where the CEO made the 40 under 40 from a business plan written on a napkin. The fact that you have something written on paper and hopefully not in crayon would have likely snagged you a $10MM valuation in SV a couple of months ago. Times have changed but I hope you are successful.
>I worked for an IPO where the CEO made the 40 under 40 from a business plan written on a napkin
Then it wasn't on the merits of the business plan, but the idea, niche, timing, connections, delivery, and several other factors besides...
Millions can scrible some startup idea on a napkin. Getting a VC to take you seriously is another matter, even with a fully fleshed presentation, a prototype, and a well written and researched business plan.
If that's what will bring you happiness, then don't let anyone stop you. However I just want to give you a little nudge, to think about if you really have no time outside this pursuit of wealth to enjoy yourself. You're only young once :)
> We live in the golden age of computer science entrepreneurialism.
no we don't, not any more. the disruptors are now the ones to be disrupted, and they're trying awful hard to keep that from happening.
like, sure there are still new businesses starting, that's true in a lot of fields. but SVB imploding is a fantastic sign as to what is truly happening to startup culture.
> The low hanging fruit is largely still unpicked.
Given that I'm not one to balk at writing 35 pages and an 8 digit bank account is relevant to my interests could you throw out a few of the low hanging fruit? I assume you won't be angry if I take one.
I've spent at least 30k on my hobbies over past 10 years, since graduating college. I still have a mortgage, I'm still in debt. But, my hobbies have given me something to enjoy outside of work. I love programming, but I consider myself lucky when my work and passions actually align. Sometimes I get to solve interesting problems. That's a luxury. But you know what is always there for me when I clock out? My family, and my hobbies. When the weather is nice, I can look forward to a motorcycle ride. I enjoy going to the gym, learning jiu jitsu, gardening, cooking, repairing things. Yes, it costs money. But, I'm in my 30s, in good shape, happy, and in debt. I see people that maxxed out their work life, and neglected their personal lives, and they tend to be miserable for one reason or another. Getting in shape and being active gets harder as you get older. Relationships take time and work as well. Money is not going to buy you a happy relationship, it's not going to buy you friends, and it's not going to buy you health. It absolutely helps, but it's not the priority. Work so that you can live well, not so that you can accumulate numbers.
If I've learned anything over the years, is that technology moves so fast day to day that, that to keep up with absolutely everything all the time is a fool's errand.
You need to pick an area that you really like and focus on it and I think the money will come when you improve and specialize your talents in that area.
That area, of course, should preferably coincide with the jobs available in your area in order to make it easier on yourself, but nothing says you can't apply for remote jobs.
"Hard to enjoy my hobbies when I'm in debt to the bank and my mortgage isn't paid."
You are young and worried for a mortgage to complete... and that prevents you to enjoy what you like in life?
What will you say when you get older and have sick relatives, dying parents, troubled teenagers, health issues... and so on? Life is not about waiting for the end of the storm to be happy. It is about learning to danse in the rain.
Be sad when it is time, manage crises when you have to... And collect and share as much joy as you can the rest of the time. No matter what, don't wait and enjoy your life!
Aiming to make a few millions (presumably in savings) before you are 35 is extremely ambitious and overall, you will most likely greatly exceed your current expectations, but perhaps not on exactly the timeframe you set.
>Honestly, I've spent so much time learning computer science trivia. I truly enjoyed learning all that computer science knowledge in my spare time.
Now I feel obliged to work even harder to make a few million dollars out of it before I'm 35.
Bad news: computer science knowledge has rapidly diminishing returns past a certain point in the real world.
Nothing quite turns the 'work' part of the brain off like a live sporting event.
Fast-flowing games work better, soccer is particularly great because it has 2x 45 minutes of solid action. NFL has too many breaks where my brain can start thinking about other things.
As an avid American Football fan, I agree; condensed replays are great, especially when you are interested in, but not deeply invested in a particular game (for those, I prefer to watch long-form).
> Frankly, most 35 y/o engineers don't truly appreciate the intricacies of intra-thread concurrent algorithms, unless it's their specialized area.
Frankly those who do would try to avoid it anyway unless it is truly the best/only solution to the problem.
The best way to not have concurrency bugs is to have as little of it as possible. If I have a choice of making single job faster vs just running 64 jobs in parallel on CPU I'd pick the second every time I can because code will be simpler and less buggy every single time.
> If I have a choice of making single job faster vs just running 64 jobs in parallel on CPU I'd pick the second every time I can because code will be simpler and less buggy every single time.
I maybe misunderstanding what you're trying to say, don't you mean you'd pick the first one every time? Make the single job faster instead of introducing concurrency with 64 parallel jobs?
I think he is arguing in favor of multiple concurrent processes ("single thread each"), instead of messing around with low-level threads + synchronization primitives (which would achieve a single fast process that uses multiple CPU cores by itself).
I believe this also happens because often the most accessible/obvious form of concurrency is the super problematic "shared data by default" kind (C/C++/Java "Threads"), which is basically ASKING for trouble.
Also programming education sometimes even reinforces this in a very harmful way from what I've seen. Telling a student about mutexes/semaphores/atomicity is actively harmful IMO if it is not accompanied by strong discouragement and actual practice in finding subtle race conditions.
Agreed. Many years of effort went into building TSAN because nobody can get shared-memory concurrency right, and whenever someone thinks they can get shared-memory concurrency right, TSAN comes along and proves them wrong. Concurrency needs the same rule of thumb as cryptography: do not try to roll your own.
Rust talks about fearless concurrency, and IME, if you avoid async await it does provide it, potentially at a cost of lovks or mutex that might not be strictly necessary for your actual use case. Actually IME async await isn't a problem either but I've read it can be an issue.
In C++ the patterns I don't see bugs in is thread pools for processing large batches of heterogeneous data, and fine grained parallelism for stuff like vector and matrix operations. But in the latter case it is all library driven, and in the former, it is a really simple pattern.
Barely related rant but I think async/await type of concurrency is the worst of the bunch and outright malady on the code that infected the mass's brain by its proliferation in JS ecosystem. Even crude message passing leads to far cleaner code architecture.
Yes, these are alternatives to (and/or implemented on top of) shared-memory parallelism, and mostly much better to work with. To continue the cryptography analogy, it's using experts' cryptography libraries. Sometimes you do need to juggle the razor blades yourself (it's not actually turtles all the way down) but it shouldn't be done lightly.
> because often the most accessible/obvious form of concurrency
I dunno, I reinvented message-passing concurrency with multiple processes before I knew the terminology or had any formal programming training. It came completely naturally and it was nearly a decade before I understood why people thought concurrency was difficult to get right.
Yeah, it's way too easy to get some new knowledge then just use it everywhere you can because you want to play with your newly gained skill, instead of dozing it in only where it is beneficial. I've created many spaghettis because of that before I realized that.
As a 21 yr old, 3 years into my computer science degree, I (for the most part) agree.
If I were just following the course material I wouldn’t expect too much from what you can learn from course work.
I have even become slightly addicted to learning everything I can about building software. From reading (3 of Robert C. Martins books, and a few other popular ones from hacker news’ top 100 reads) and taking Udemy courses[0] in my free time.
I also have been working at a small teacher resource website for the past few years, to get some on the job knowledge.
Even then I still don’t feel like I’ve got the best understanding of SQL, networking or concurrency. I spent most of my time learning specific languages and practices and principles like Agile and spec docs. I’m working on building my own web app and have been creating a dev log for it[1], as well as building an arguably crappy personal website[2].
Thanks, I mostly wanted to illustrate that there are some who fall into the age and education range mentioned that also spend time to teach themselves outside of class. My main point being that its difficult to attribute knowledge directly to an age and time spent in a degree path. However, I also fall in the subset that just seem to enjoy this type of learning, with probably too much time on their hands.
The value of book learning/straight ordinary education is underrated in software.
Software engineers consistently overvalue the benefits of "I need to be a crazy outlier," and consistently undervalue getting to bed on time, using a visual debugger, and "normal work habits."
Is lazy the right word? There are only so many things you can learn in this lifetime, you must prioritise well what you spend your time on. Many things make sense to learn well only if they are important for what you are doing.
For SQL I think it's fair. It's ubiquitous, generally standard and unchanging, and knowing it well takes less time than just about any other skill in you need in this field. It's been the primary data fetching language at the six companies I've worked at. Some things change fast and go out of fashion, but SQL is clearly not one of them. I studied ONE SQL book over ten years ago now, and it's 90% of what I've ever needed.
SQL et al. were built to solve the problem 'how do I handle (possibly big) datasets'..._when_I_was_a_kid_, you had to learn in your programming language how to handle data and how to work with it. There was a lot of conversations on sorting techniques, how you laid data down on storage medium, etc.
All that went away with SQL as the management was pushed down to the database. It freed the developer up to concentrate on the problem, rather than the hygiene.
Likewise, I guess, the kids these days don't need to worry about the OSI model, subnetting, routing, TTL...
I can complain that a cloud native Hello World application can be made with the end user knowing NOTHING about the underlying code to get it there, but that's just me being an old guy, shouting at a cloud.
I look at what I know, and what the kids know, and recognize that each of these technologies was spoon-fed to me over decades. I didn't learn Linux, SQL, networking, GPU acceleration, Network Intrusion and Detection and how to manage it...all at once, when I was 21.
It’s great to write carefree SQL, with the DB platform totally abstracted, until there’s a massive spike in query latency. Then hash joins vs nested loops and full table scans is useful knowledge which is a) mostly vendor specific b) requires a good prod-sized dataset to test on.
I have been developing for 5 years now and I'm always finding a new neat thing even in SQL.
Recently, had an issue with deadlocks, I learned about them in school(even did a presentation on it) but had to research how SQL handles them and how I can rectify the issue we were having. I really enjoy this part of the job. There is always something 'new' to learn, even if it existed for a while like SQL.
Most of IT is a lake a mile wide and an inch deep...Sure, there's parts that you'll drown in, but you can get by with the inch deep stuff.
It's not even a Jack-of-all-Trades thing, and I hate it. You're a Git away from building your startup and you've got no idea what libraries or dependencies it has, you just logged into AWS with a credit card and ran with it.
I doubt too many people forgo learning SQL exclusively because they are too busy learning other, higher priority things. Most people have free time and still choose not to learn SQL. I had a teacher in highschool who referred to not doing things because they weren't really that important as being "legitimately lazy" which I feel is an apt description.
It's just that there's so much more exciting stuff to learn, like machine learning, game programming, latest shiny web framework of the month.
If you're a person who likes being visually stimulated while learning, spending free time outside of work to learn how to query tables and design schemas is about as exciting as watching paint dry.
Also there is the balance (i.e. "go home and watch football after 5 p.m.") that the interns want as well. There are people who go do additional research and learning after class, but many don't. In the high-stress environment of CS or engineering school it's not easy to keep working in your little spare time, and I've seen burnout and loss of social opportunities occur to those that push too hard.
I have never used and will (in the foreseeable future) not use SQL.
I already have a ton of stuff on my plate that I need or want to learn, SQL is not one of them and I won't include it "just because". Right now it's absolutely useless to my skillset and not something that I have an interest with either. This might change, and then we'll see, but right now it's not even a thought.
I'm pretty unhappy with my current job, but at least I can say I'm not expected to use my very limited and rusty knowledge of SQL. Working with relational databases is one of the least fun aspects of programming I've ever encountered. If a job interview heavily stresses SQL knowledge, I'm probably not a good fit for the position. Even if the position itself demands less SQL ability than the interview suggests, I take the questions as an implicit requirement for success. Also, if I end up in an interview where they delve more deeply into SQL than "when would you use and inner vs outer join", I've probably failed somewhere in screening for jobs I should interview for.
Spend some time doing initial technical screen interviews. You'll quickly realize most people with years of industry experience have barely any clue what they're doing.
Think about the average quality of engineer you've seen make it to a panel interview. Then realize the majority of applicants don't make it to a manager screen, and the majority of those screened don't make it to the panel. And a large percentage (varies by company) won't make it through the interview panel. If you're only thinking about people who are hired, you're even more distant.
None of this is to insult people. This skill set is hard. It's just that if you work with competent engineers and spend your days in technical communities, you're in a bubble that tricks you into thinking most people in the industry are way more capable than they actually are.
That's a great answer. I would only add that the cognitive load of CS taken broadly is far greater than most 4-year CS curricula can hope to cover. I do think CS curricula could be significantly better, but they'd have to lighten up on liberal arts requirements to get there, and even then most undergrads 18-21 couldn't handle it. Add to that the sorts of things that software developers have to know that CS curricula won't bother covering, and the cognitive load of it all requires well over a decade to master, if not more. Plus the mastery of any one individual will greatly depend on what they've had to work with.
Well-rounded computer scientists spend a lot of time reading papers (and docs and blogs and...) and a lot of time thinking about things. But that means having less time left over for being 10x engineers unless they're also 10x computer scientists.
As I've grown older myself I've grasped the whole 'horizon' of knowledge gathering in this field. We will never know enough to feel like we know enough. Better to call it a hobby than work related and try and enjoy some sportball I guess.
I agree that some of these expectations are a bit unreasonable. However, probably 90% of all software jobs require some basic knowledge about SQL, Javascript/HTML and/or system modeling (MVC, MVVM, etc.)
I would never expect network programming and maybe by concurrent all OP really means is threads but hard to say. They should understand that computers are a multi-threaded environment even if they don't have experience implementing thread safe software.
Its not just the age. Unless you have been studying/working with those topics within the last 6 mos or have accumulated a working habit in the area over many years, your working knowledge of any one topic is going to be quite superficial. Most need a space to re-introduce themselves to the topic to perform the relevant context switching required. The human mind forgets alot, but fortunately it is easier to re-learn as needed.
>21 year olds won't know very much of anything in general.
Then that's a failing of whatever education system they were in, not of their age. Infantilizing 21 year olds even further, isn't doing them, or anybody else any favors.
That a true but fairly pointless statement. Humans rarely optimize for learning to the extent that you would hit that hypothetical. It's really quite easy for a 21-year old to know the things the OP is talking about. But A) they don't care to know and B) our education system babies kids.
We could be teaching all this stuff at a far younger age, and many countries do.
In the real world, this may not hold for niche knowledge streams (eg theoretical CS). 21-year-olds growing up in the 21st century can optimise far better than 31-year-olds, with far better availability of specialist knowledge from a much earlier age
For decades, the standard line has been “you go to college to learn how to learn.” And high school and education leading up to it has been seen as preparation for college.
Not to mention “college isn’t a trade school”, “if you want your CS program to teach you how to program, go to a boot camp”, and so on.
That's the standard line from society of how college works in practice. But the colleges, nay universities, themselves have always been hesitant to become job-creation factories. They are not vocational schools.
Meanwhile, vocational schools and community colleges in the U.S. are considered low-prestige by both industry employers and American society itself, despite less likely to result in high student debt and perhaps fewer pointless degrees.
Just complete lack of coordination from different segments of society, and misaligned incentives across the board.
It also points out how the tech industry, and perhaps other private sectors, has completely abdicated its responsibility in the proper training of its new workers. Which it used to do decades ago, but now has outsourced it to universities.
“Back in my day...” when I was in my last term of CS undergrad work 25 years ago, I had already developed kernel modules (in a toy/research OS) to manage concurrency primitives, written several networked client and server programs and readily debug them with tcpdump, could explain the differences between the 7-layer OSI model and typical 4-layer protocol stack we actually use, could describe with examples several tiers of relational database normalization, and wrote a low-level hardware I/O kit for downloading Atari 2600 carts. This was all just stuff I'd learned and written for my class projects at my very mid-tier state university. It sounds like either the curriculum standards have changed over the years, or maybe the program was more advanced at the time than I gave it credit for?
Heh. I mean, I was an A student, but except for a handful of duds in the class, all of my peers produced this same kind and quantity of work. There were definitely some who were sharper than me. I did not think of myself as a particularly stand-out student in my class.
I'd agree that the 80s and 90s were probably a peak time for widespread but still rigorous computer science tertiary education (was certainly rigorous before then but not particularly widespread). At least in Western countries. The quality and rigour of CS education started heading downhill in the 2000s.
Well in natural science it's more common than ever for a degree to have become a requirement over the decades for challenging positions where far more progress could be made by those having a lifetime of interest & study before they were old enough for higher education instead. There's only so many positions like that though, but these are key and have been failing to be adequately filled for decades now. It's been downhill ever since they started calling Personnel departments "Human Resources". Nomenclature which arose after all the layoffs from the Nixon recession, in response to employees actually being treated more expendable than ever, whilst relying only on paperwork filed with HR to judge those worthy of retaining their careers.
Through time, regardless of what a performer can do, without an impressive file (by comparison to some known slackers already in the corp) they won't even be given a chance.
These outstanding performers are getting harder to find since so many more people have a degree these days, even PhD's, and with all the average-to-below-average students now earning degrees and thus diluting the degreed talent pool.
Plus more often than not the original need for enhanced credentials was purely bureaucratic, which can work OK to an extent in a well-run bureaucracy, but when you've got a key position where an average performer just will not do, it really doesn't help no matter how many degrees they have.
Often you need someone who has put 4 years or less of effort into rapidly earning credentials better-than-average (at the expense of getting deep into the actual science), who will take that type of success into the workplace, having an advantage doing more of the same politically within the org.
Other times, especially in science, you need someone who has had a lifetime of interest, to build upon that much more technical background, which could not be achieved in merely 4 years anyway, even by the same person.
When you need a lifetime of progress you're going to get a lot more from a 21-year-old who didn't just start a few years earlier.
Even an MSc in CS won't get you very far. There's only so much time in the day, and only so much new stuff you can cram into people's heads in one go. Uni gave me a broad base, but the knowledge is ultimately extremely shallow. The exceptions all seemed to have grown up with parents who knew enough about computers to actually teach them, and they had a massive lead on the rest of the class in some subjects.
I have, at times, appreciated the intricacies of intra-thread concurrent algorithms relevant to my work at the time, but I happily page that knowledge out when it's no longer being used, and will (painstakingly) page it back in when necessary. I think this is the only sane way to go about things. There are way too many "fundamentals" to maintain expertise in all of them all of the time.
I think you're setting a bit of a low bar here. The poster mentioned they're in their final semester.
If you're in your final semester of a formal CS education then you have almost certainly taken courses on all of the things the poster mentioned. I remember studying all of these things, at least at the introductory level, in the second last year of my university education.
Look up the CS courses followed, see if those skills are on there. And even then, take it with a grain of salt because in my personal experience, the list of "this is what we'll teach you" is often wrong.
A lot of skills are acquired by experience and when needed; don't hire fresh graduates for foundational and theretical knowledge, hire for learning ability. Give them a take-home assignment where they have to show they know or can learn something new.
I’ve been shouting this mantra at companies for a while now, most generally have an aversion to junior engineers and my main argument is “they are junior” which seems lost on many.
The 4 years I spent doing a CS degree at a Scottish university were all maths and CS - almost no "dicking around". Mind you this has the distinct disadvantage that if you get to uni and you realise that CS isn't your thing you had very few options.
> Srsly, the expectations on new grads is stupid high
Is part of this because not too long ago, Facebook + Google were basically giving the top new grads $175k signing bonuses to convince as much top tier talent to work for them as possible (and things of this nature)?
FAAANG unintentionally limited its own hiring pool by implementing leet code for their own hiring screens. They accidentally set the bar to high and the hiring process filtered people with a limited skill set that almost always had little relevance for the job they were hired for.
This throttled the market as a whole, limiting supply of workers which drove up TC.
The upside at least is that I can play that game too and optimize for it, and then reimplement the same practice which further limits the supply of labor and benefits my TC at the expense of the company I work for. Win.
> Frankly, most 35 y/o engineers don't truly appreciate the intricacies of intra-thread concurrent algorithms
You don't need to know the intricacies, just the foundational basics. Locks, blocking threads, deadlocks etc. Any half decent CS course will teach you these concepts.
It is necessary to know such things exist, but expected that their details will be looked up when relevant. Some people write low level concurrent code all the time, and they need to be up on all those details all the time. But many people only do so intermittently, and they only need to be aware of the existence of tricky details in the space, and have the capacity to get up to speed on them.
Do you mean any half-decent concurrent programming CS course? Because your intro (or even intermediate) CS courses don't come anywhere close to broaching those topics, even at elite universities.
The real issue IMO is that you can get a CS degree without taking a concurrent programming course
Students aren't looking for internships after 3 weeks though. You usually start applying at the end of the year. By then, your CS course should have covered the very basics of concurrent programming.
Maybe we have different definitions of "CS course"
No, it's unacceptable. When people are not at work, they should be thinking about work, planning for it, and hell, still doing it, only unpaid.
I say we shouldn't even have a distinction between work and home. We should set up dorms so that people don't have to leave the premises. Rent can just be taken out of their pay, talk about convenience! In fact, do they really need to get paid, when the company can provide all their needs? Isn't getting to do the work reward enough?
And once a company exec feels the need to embellish results by cutting salary expenses, those workers need to be the first to present resignation to avoid the extra cost to the company in salary, meetings and in paperwork.
Nobody wants paid for time spent in shower, we just wanna go home at night and be free to choose our activities and hobbies without being critiqued for having lives
I don't think firing middle management, documenters and designers with no trackable productiveness and forcing people to work in their free time is the same thing ?
Do you have evidence of this claim that it was only unproductive people?(Though I find your definition of who those people are is also suspect) I've read news of large parts of teams being fired, including gutting important groups like curation.
Statistically, by firing entire teams, you're bound to catch a few unproductive people. The acutally productive ones that you fired can be filed under "side-effects of making the company lean".
Be it family, hobbies, religion, other topics of interest, the scope of things to do in life is near-infinite.
You could spend your evening honing your skills for a while, yes, but even then at some point you might feel tired of just spending all your time on computer-related stuff.
Then you log on HN, like you did for the last decade or so, and see another "Ask HN: I don't feel passionate about coding anymore" post. It's okay buddy, passion will come back, or might not in a way that makes it okay, you just need a breather.
Sorry, went on a bit of a tangent, cause I do agree with you in fact. I do expect my colleagues to meet a baseline of competency, one that usually only met by "doing your homework", and at the same time, I don't think it's reasonable to expect them to do it out of habit.
Yes, it is acceptable. Nobody is entitled to expect a coworker to work outside of payed hours. If you think you are entitled to that, I believe you should move to China or North Korea.
Are you a founder, perhaps? Or just a toxic individual?
We should do both. Sometimes learn and read, often spend time with friends, family and hobby. It’s also fine to learn during the job. I find it sometimes refreshing to do fun side projects but for me it’s important for them not to be tight to a deadline, team discussion, quality expectations of others etc - everything which is expected at work. It’s an investment in myself that I sell to my employer with regularly increasing salary.
> It’s an investment in myself that I sell to my employer with regularly increasing salary.
I think this is a really important point!
Of course it's acceptable to go home and watch soccer.
But then you are relying on your employer to keep your skills current. Some employers will send you to a conference once a year, but I'm not sure that's enough.
If you don't keep learning you'll realize that when you are 45 your skills are 20 years out of date.
Considering how tech salaries exploded in the last decade, I think we're getting a fair deal for spending some of our free time learning.
Most jobs offer progression without the toil of deliberate study on your personal time. Good employers invest in their employees by allowing them to do gain skills while on the clock, be it through classes, independent study time, side projects, etc.
It's also dangerous to willingly give this away based on the salaries during a boom. The expectation won't go away when the boom goes away... In fact, it will probably get worse.
This isn't the reason. 4years of work and they can't make software? It's not the age, it's the system. It's not about learning how to make software, it's an adult daycare.
But even 'back in the day' on my first job out of college as a freshly minted CS major. My boss looked at me and said 'today you start to learn to write software'. He was mildly joking with me but was also very serious. A CS degree does not mean you can write software. Even 25 years ago I graduated with people who only took the intro pascal class and nothing else. These were CS majors. I knew going out on that I was a 'green' and had no real practical coding skills. Those I learned very quickly on the job.
I had all the fundamentals. The thing I was missing was writing software itself. Why testing is important. Why structure and readability is important. How to decompose the program into different systems. I am glad for the CS degree as those issues do pop up from time to time. Mostly though I am gluing this framework to that framework so someone can fill out a form and automate some paperwork system.
I did exactly that. That does not teach you to write a good program. It shows you how to make a compiler in yacc and bison or whatever the current flavor is. A skill I have had need of very rarely. Most of the time you do not need to reinvent a whole grammar with parser to get your task done.
For new devs I take on. I stress good code structure, testing, regression, QA, path testing, logical layout of architecture, end user requirements and delivery of code. I assume fundamentals. If they are missing them I get them on projects where they would learn particular ones.
Steve Jobs was 21 years old when he co-founded Apple Computers.
Bill Gates was 19 years old when he co-founded Microsoft, as was Mark Zuckerberg when he founded Facebook.
Bill Gates was in the 0.01% in terms of access to computing resources at the time: a Teletype 33 and time on a GE mainframe via his private school. There are 19 year olds and 19 year olds when it comes to bring set up for Big Things.
He also had access to Paul Allen, who mentored him and was a professional programmer. Same for Jobs who had access to Steve Wozniak, the engineer behind the Apple I and II.
I read about how Bill Gates made a significant contribution to the pancake sorting problem in 1979 (iirc). Apparently, his results were bleeding edge for something like 30 years until someone managed to get a result that was slightly better (~1%). A result that was accomplished with a lot of computer assistance.
I strongly doubt that Gates made any significant contributions to computer science. So I'd appreciate a source to what you've claimed here.
Gates had a 'genius' for ruthlessly exploiting a monopoly in business; apart from that there is nothing else exceptional about the man apart from being a thoroughly unlikeable and harmful person, in my view.
"In 1979, Bill Gates and Christos Papadimitriou gave a lower bound of 1.06n flips and an upper bound of
(5n+5)/3. The upper bound was improved, thirty years later, to 18n/11 by a team of researchers at the University of Texas at Dallas, led by Founders Professor Hal Sudborough." --https://en.wikipedia.org/wiki/Pancake_sorting
Cheers. I've found the full paper is accessible through Sci-Hub [1]. I've had a very quick glance over it. The paper was submitted in January 1978 (when he'd already been at Microsoft for 2 years). But this NPR transcript [2] of a chat with Gates' Harvard professor Harry Lewis describes him as coming up with the solution a few days after the professor referenced the problem in class (in either 1974 or '75). Gates' co-author Christos Papadimitriou was an assistant professor at Harvard at the time. Papadimitriou went on to a glittering academic career and he recounts his recollection of the collaboration with Gates in a 2013 ACM profile [3].
So it appears that I do have to concede Gates this one contribution towards computer science. Although the paper contains a somewhat intriguing note right at the bottom :
> Ervin Györi of the Hungarian Academy of Sciences and György Turán of J. Atilla University have independently discovered a proof of Theorem 1 [the five-thirds solution]. Their algorithm and proof are essentially the same as ours.
And their paper [4] was published in 1978, preceding publication of the Gates & Papadimitriou paper in 1979.
none of the three of them knew about database systems, relational algebra, sql, or concurrent programming; zuck might have known things about network programming but he wrote fecebutt in php, he wasn't writing a tcp/ip stack or even invoking socket(), bind(), and listen()
If the purpose of a for profit company is to make a profit and keep shareholders happy. How much “better” could Microsoft and Apple be than 2 of the top 5 most valuable companies in the US?
It probably would have been in worse shape. SJ needed the time to mature.
Don’t forget that as late as 1993, Apple was worth more than MS and it was going back and forth with HP to be the number one PC seller. Things started going south around the time of Windows 95 - only two years before he came back.
We can't all define "better" exactly the same way, but I think it can be agreed there were mistakes due to immaturity that would not have ocurred otherwise.
Profit is necessary to stay in business so it's important. But it can't be the only and exclusive goal. A company is just a structure to make things happen / collectively achieve things.
The goal of every company for profit company is fact to make its investors money. Do you really think that any investor cared about anything besides making money?
Please don’t tell me that you believe in sone BS “mission statement” that companies spout? Did you also believe Google’s “Don’t be Evil” motto thru had for years?
You're pushing a harmful, cynical and ultimately nihilistic agenda here. I've seen the same line pushed many times since it became 'en vogue' in the 80s but ultimately dating back to an influential Milton Friedman paper published in the early 70s. I reject it but I frankly also find it tedious to argue against it because those pushing it usually remain ideologically (neoliberalism) wedded to it. But if you do actually want to have your thinking challenged, there are many serious essays that have been written to contest the 'maximizing shareholder value' line. One I pulled up just quickly challenges it through Peter Drucker's views on the purpose of business. Quoting that :
> Profit and profitability are absolute requirements. That is why even non-profit corporations must strive mightily for profitability. However, this does not mean that profit is the basic purpose of a business. Profitability really is an essential ingredient by itself which might be better spoken of in terms of an optimal, rather than a maximum size. In support of this thesis, Drucker noted that the primary test of any business is not the maximization of profit, but the achievement of sufficient profit to allow for the risks of the financial activity of the business, and thus to avoid catastrophic loss leading to failure. And we might add, achieve the success which would benefit both the business and society. So profit is necessary, but [not] the purpose of business.
What is “nihilistic” about it? Why do you think investors invest in a company? Why do you think founders create companies? Most tech companies don’t desire to be “lifestyle companies” where they just want to make enough of a profit to support themselves. Most are looking for an “exit” which is statistically going to be an acquisition.
For instance, out of all the companies that YC has invested in, less than a dozen have gone public.
And once you either accept outside funding, you are immediately at the mercy of the investors whose only goal is to make a profit.
And honestly what Drucker thinks is irrelevant. What’s relevant is what the owners of the companies want - either public or private companies.
What do you think the pension funds and mutual funds want when they own stock in a company? What do you want from your retirement accounts?
>The goal of every company for profit company is fact to make its investors money.
Not every for-profit company has investors.
>Do you really think that any investor cared about anything besides making money?
Some of the most successful investors already have enough money and/or lucrative investments, and truly do care more about other things, sometimes even while executing their foundational money-making investments.
Most people are not geniuses though. Of course one should benchmark against the best, but those you listed some real outliers here.
For start all 3 were from top Universities? Gates and Zuck were at Harvard, Jobs was I think at Reed and partially at Stanford. How many people graduate from there? How many graduates of top universities go straight to FAANG for those fat salaries? How many go to work at their rich parents' companies?
Steve Jobs founded his company (with the genius Wozniak) at young age. Why would the theoretical "next Jobs" want to work at OPs company? The "next Jobs" (whoever they are) probably had already funded their own company.
Also founders are outliers, since most new companies fail, you dont hear about those who tried and lost.
Bill Gates knew how to program well enough to get BASIC by the time he dropped out. There are people like this nowadays too. But they wont work as a junior in OPs company, when they can be hired as a mid or even a senior. They probably did few internships since year one university, so they can go to FAANG and earn a ton of money, or they just get hired by the place where they did the first internship.
> Hackernews is a self selecting community of tech works who study their job in their spare time as a hobby.
In a matter of days, I have seen similar comments about HN audience in HN comments.
Is consuming HN really an added qualifying factor or is HN audience a little too full of themselves. I don't know if I can attribute anything but being a bit curious as a quality for being HN audience. I don't think it's true that HN is a self selecting community who study their job in their part time. I spend time on HN, I am in tech and used to spend a ton of time "studying my job in my spare time" when I was younger, as I get older and have a family, my priorities are different. In the recent time, I tend to spend time now spending time with family or learning how to ski or spend time with yard work instead of spending energy on the latest shiny framework/language every year. I still work on personal projects but as I grow older, I have other priorities and things I'd rather do as well. I just don't think I am better just because I read HN as opposed to reddit or Instagram or Whatsapp.
The mere fact that you're interested in reading tech news means that you're somewhat more interested in tech than the average person (or even software developer). That's all.
Mediocre 21 year olds don’t know much of anything. That’s the issue. Any beating heart able to pass whatever filter course they have to limit CS intake is a CS grad now. The best ones from top schools intern at the top companies so what you get is the middle of the CS pack. Which means their average IQ is likely below 100.
I still remember, this stem cell professor, Irving weissman, giving a lecture and the introduction said he got his start in stem cells when he started doing some stem cell isolation, when he was 15, in school, in the 60s. So 21 year olds, if they’re good, should know a bit about the thing they spent 3 years studying. let’s not hide behind some weird watered down metric that they’re too young.
This seems like a harmful way of thinking about people and development.
There's only a limited amount of time in life to gain experience. A 15yr old's brain is quite literally not fully developed yet, expecting someone to have chosen and begun studying in their specialty then is ridiculous. Such an early start also not generally possible without the privilege of good mentorship. There's also reason universities historically wanted well rounded individuals and require general education classes--you'll end up stunted or miss opportunity for cross pollination otherwise.
This guy wrote 2 paragraphs about how the average CS person has less than a 100 IQ in a condescending way… while at the same time demonstrating he doesn’t even have a high school level understanding of statistics. You should look deep into yourself and wonder why you’d say or think things like this. It’s one thing to be condescending, but another to also pair it with some statements that reveal how you’re actually the dumbass.
I think you really underestimate the intelligence of the average CS grad. No way the average iq is under 100. Even to get past the prereq's for a CS degree like calculus you are not going to find many under 100 (let alone going on to graduate)
Ah, yes, “normies can’t code”. It’s not a polite thing to say, even if (somewhat) true, and it’s also not very useful, given they are the vast majority of people.
> Most people I've worked with go home and watch football after 5pm.
Unfortunately, the job market is getting more and more competitive.
Software engineers had easy in the last 10 years due to high demand, but things are changing now IMO.
Automation and AI will make most basic programming jobs redundant. Combine with saturation of entry level programmer. Everyone will need to push harder to differentiate from others. Race to the bottom..
>Automation and AI will make most basic programming jobs redundant
You are probably not an engineer, since you should understand GPT makes programming harder, not easier. You won't necessarily make something easier by making it more high-level. Following your logic, you could conclude introduction of C made Assembler engineers redundant or that introducing Python left C engineers without a job. This is not true, using GPT to code is leveraging a natural highest-level language for the job, which is certainly leading to trouble, because it's not the best tool for the job – people specifically invented new languages so it's easier to express the business algorithm, all the attempts to make coding look easier by making it more as natural language failed, and the thought of GPT would suddenly change something? It is naive and ignorant, doing code is a pure thought process and fingers have long learned to tap it out by heart with the usual syntax without falling for the trap of ambiguities and inconsistencies in natural language. You just can't build reliable things with the prose, you do it with stricter rules of expression in mind
I stepped into a project at work to help out knowing almost no typescript and wrote angular http routines that just worked in a few hours with chatGPT. first we started with any and then we built out an interface and it helped me use the map function in http to build out a result array without any intermediate array creation.
I 100% would not have written the code as well as it came out with gpt's help.
Of course, GPT remains the best (after real human teacher) learning/discovery tool available nowadays, so it summarised (luckily for you, not hallucinated this time) some information together to get your job done. However, one could use his tooling documentation manuals to get the same job done in the same amount of time without prior knowledge? A senior engineer would just do it as fast as his fingers can type without the need to learn it prior. Oh, also he will be able to maintain it!
That’s exactly my point. The current scenario where someone can just go into a 3 months javascript bootcamp won’t be enough.
In my team, there is a grad dev doing bare minimum work. He has no initiative and struggles to understand basic requirements. I need to break down the task so much that I’m almost doing the work. In a few years, with better tooling/copilot/gpt, I will be able to just “finish” the job myself, and this kind of dev is made redundant.
Maybe this kind of dev is not common in FANG, but I met several, from small to big companies, in my over 10 years software engineer career.
>That’s exactly my point. The current scenario where someone can just go into a 3 months javascript bootcamp won’t be enough.
Realistically 3 months of any bootcamp was never enough.
>In my team, there is a grad dev doing bare minimum work. He has no initiative and struggles to understand basic requirements.
This kind of person has been around all over my 25+ year career, starting in the dot boom. "You should get into programming because of the money!" This is the result. With programming, you have to have an almost unhealthy obsession with it to be successful. These people get weeded out during the crashes, in which we are in the midst of.
Your case sounds like this - we have an engineer assigned to our team, we don't like his performance, and we can't do anything about it. Kind of a dead end which is bad for business. I prefer strong teams which were assembled by team leaders and members, not by business. I think the biggest problem in tech hiring is who makes the hire, it's pure luck if you don't have a ton of comprehension in the field and just assign someone as a business owner. The second biggest problem is that the wrong people don't get churned in the first few weeks So hire ONE senior engineer who will get stuff done in a way you like, – let him do the rest of the team hires, give him the responsibility to fire those who don't fit in the first few weeks. Voila, you have a self-sustained, well-communicating, and motivated team of people who get stuff done in a way you like.
I find it that the people who say "AI will replace developers" are the same ones that were thinking that CMSes will replace the need for developers, then no/low-code will replace the need for developers. But no, users are too stupid to handle stuff. Best case scenario developers will automate the easiest and time consuming things like UI creations and boilerplate using those tools. Most companies I know that use CMSes still have devs changing every single bit of the page because they either customized it so heavily or they simply implemented it wrong. I haven't seen a single successfully low-code company yet(though that just might be me). The same will happen with ChatGPT. It will become a tool, professionals still will be needed to use it properly.
Remember when "the cloud" was going to replace ops and on-prem and yet here was are 17 year since the release of AWS and we've only seen a 40% shift to the cloud and a massive need for ops people. Coders aren't going away they will just shift.
It's a race to the bottom in terms of work-life balance/compensation - ie everyone is putting in more effort to stay at the same level of employment until the industry bottoms out and people can't realistically work any harder for any less.
It sounds to me that you're just describing the supply-demand curve of employment, i.e. capitalism as prescribed. Are you suggesting an alternative approach?
My first two internships were at an insurance company. Everyone was busy. Not saying your job wasn't what it was but I can't say it's representative of everything outside Silicon Valley.
21 year olds won't know very much of anything in general.
A 21 year old 3rd year college intern is... 21 years old
Three quarters of a four year computer science degree doesn't change the fact they're a 21 year old.
Even in the topics they have covered, the knowledge won't be very deep.
A true mental model of concurrent programming is not something easily obtained.
Frankly, most 35 y/o engineers don't truly appreciate the intricacies of intra-thread concurrent algorithms, unless it's their specialized area.
Frankly, most engineers in the industry are too lazy to learn SQL well.
Lower your expectations of 21 year olds. Lower your expectations of the workforce in general. Hackernews is a self selecting community of tech works who study their job in their spare time as a hobby.
Most people I've worked with go home and watch football after 5pm.