Hacker Newsnew | past | comments | ask | show | jobs | submit | jrowen's commentslogin

I found the whole article to be a bit heavy on anti-academia. And I went to industry after undergrad.

It's a false dichotomy between the "thinkism" bogeyman (actually reading books and papers and putting work into theoretical design is just bad now? Have they tried building anything in the physical world? Checked in with nuclear physics, ever?) and hands-on experience. Both are important. It should be about balance, not trashing an incredibly valuable set of tools because others exist...


I am team academia more than hands-on experience. And I have 5 years of experience. To me, it felt like most SWE things could eventually be solved by what I learned at school.

Not everything I did I learned at school, such as navigating codebases with more than a million lines of code. But most things? Yea.

With that said, I am curious how people say that they learned much more through experience, what did you specifically learn?


Could you tell us what you learned at school that is useful for your SWE career? Im sure there is a lot of us that learned 0 at school and learned everything ourselves as kids on the internet

The problem with "learned everything ourselves" is that you might have niche interests and you miss things. Things I learned that probably I wouldn't have by done by myself: computer architecture (memory, buses, cpu-s, instruction set), and related VHDL/Verilog; how complex is synchronization (implementing from scratch synchronization libraries); different programming paradigms (functional languages); compilers & operating systems (kernel modules, etc.); various types of maths (dsp); algorithm complexity analysis.

Some I ended up using more during my career than others, but knowing more definitely reduced my tendency to think "ah, that should be easy".


Edit: feel free to summarize this with an LLM it will be a ginormous comment.

That's a fair question and I'll do my best to answer this. It'll come in an edit. I think it's fair to say: not all courses were created equal in this regard but I'll do it course by course. I studied a bachelor information science but I tweaked my program so close to computer science that I almost daresay it's computer science (if I had 3 courses different, it was). I studied a bachelor in psychology. A two year master in computer science and a one year master called game studies (officially a specialization of information studies, but in practice it wasn't and it really was game studies as a whole field that we studied).

I'll try to do it in order per study program too.

AI-kaleidoscope: general overview of AI algo's. It's a shame we didn't know how to program or that we knew the usefulness of BFS or DFS but we learned it here. Not a useful course due to scaffolding issues (teach programming first).

Business mathematics: partial derivatives, etc.

Problem solving: useless course (teach programming first).

Privacy and security: we didn't learn much about security. We learned a thing or two about privacy. Should've been a TED talk, not a course.

Graph theory: graph visualization (and when not to do it, helped me out as a data analyst later), mathematical proofs, social networks (helped me to actually network a bit), graph algo's (made leetcode easier), not being scared of math notation. This was a really math heavy course as it was taught by someone that studied math in undergrad and grad and then switched to CS as his PhD (and by the time he taught it he was a full professor). He did not skip on the math which was wild since I was under the impression that I did a "business informatics" bachelor so I didn't need to have advanced math as a high school prerequisite. But I definitely needed that here so this course was hard.

Web technology: this was a bit too early but it was a good overview of web programming at the time. I remember being explained what the DOM was and I remember thinking "wtf is the point?" That was because they explained it way too theoretically and simply should've opened firebug or something to really show it.

Language of Logic and Methods of Reasoning: propositional logic and predicate logic. Practically speaking: after this course if statements are not a problem. This was true for me at least.

Pervasive computing: fun course but could've been a TED talk about how tech is used in interesting ways.

Introduction to programming: basic programming stuff in Java. I learned that Java is a terrible language to start programming in. I recommend JavaScript for app/web-oriented people and Python for "just pick a language" people. Nevertheless, while it was a terrible start, it did teach what it needed to teach which was a basic understanding, and skill, in programming.

Empirical methods: the better name is statistics 1. We learned about statistics and we had to program in R. Since our actual programming ability was quite weak it was a double course. It was the second language ever that I had to take seriously and it taught me a lot of programming stuff and statistics stuff at the same time. It helped that I had friends studying psychology at the time as that degree has a lot of stats in it, so I knew the lingo. Almost everyone else was hopelessly lost.

Programming project: no lectures, just one big programming assignment. After this it was expected that the student could write readable code. I failed this course the first time by a hair. And when I came back to it the second year I realized that I failed because my code was unreadable. So I refactored the whole thing and learned how to write much more readable code. We created the game engine for an Othello game. The graphics library was provided by the TA's. So we also learned to program with a library that was way beyond our heads at the time. And that also implicitly teaches you to trust certain abstractions.

Interactive multimedia project: we learned XIMPEL a hypermedia framework, kind of useless. But through XIMPEL we also learned about storyboarding, creating scenes and general video editing. This teacher was super hands off and allowed students to be creative. So I also learned to create simple PHP websites and learned my way around bash a bit. Then I decided to create an upload script where I used PHP to call the ftp command on bash. I thought it was impossible but it wasn't and had to rethink about what web applications could really do. None of these things were formal course requirements but this teacher encouraged this type of explorations so I do credit it to him that "I learned it in school". It's part of these efforts that he also gave me an amazingly high grade as my XIMPEL story graph was a bit meh but my creativity and extra explorations where a 10 out of 10 effort. So he gave me a 9 out of 10 in total. Also deepened my HTML/CSS knowledge.

-----

I'll write the rest later in another comment this is about the first year and I studied 9 of them. As you can see, I was just learning the basics here. But there are a few patterns:

* Some teachers allowed us to work on real stuff if the student chose to (e.g. Interactive Multimedia) and that got way more serious later on as I created an iPhone app for a client when the teacher taught Multimedia Authoring in the master.

* Some courses were quite useless or could've been condensed to a TED talk.

* Some courses taught something useful or semi-useful but it's not up to industry standard. But as you'll see, this will lead up to a level where - while not quite industry standard - makes the gap between industry standard and whatever I did small enough to just make the jump easily by simply applying what I thought was common sense.


I find that many people can learn a lot by doing but then at some point hit a wall and really struggle to recognize that another kind of learning needs to take place to understand a deeper concept.

This is a great point. Us millenials all look at AOL through rosy colored glasses as part of the halcyon days of the free internet, but there was probably just as much depressing corporate overlord bullshit going on, we just thought it was fun that they printed billions of garbage CDs!

This is pretty much true, but also, you're older now. The people the age you are now were saying things like this when you were having all that fun. You are in a different place now. Your life is not about coming home after school and goofing off. You have important things to do. Those bored, lonely, funny, obsessive, angry, horny, curious kids are still out there, finding their version of what we had. They always are.

The internet may have changed, but the human spirit hasn't.


I lived off Divisadero briefly, sometimes referring to the general area as "diviz". I looked up Division St and realized I've probably driven on it many times but don't have any particular recollection of it or any confusion around it.

Corporate bullcrap. Do your art, do what you believe in. Don't do it for "the company to make money." The company doesn't need to exist in and of itself. When you start making decisions that way, what is the point? So you can just say "I built a thing that conformed enough to the lowest common denominators of society to make a buck"?

I don't get that quote. Does that apply to teams working on SDKs, GPU design, internal tools, etc? Are those all reframed as "products"? Seems like there would be a lot of groups at Apple concerned entirely with shipping technology? "Leverage" makes it sound like they just use other people's tech but we know that's not true. Why throw shipping technology under the bus? I don't get it.

I would guess they label things differently or use different language to talk with their internal product teams/employees. But the end goal being to ship an end-user Apple Product orchestrating tech/products in ways that the individual tech/product could not do on its own.

The US is happy creating laws for everything that are impossible to follow, but only selectively enforced.

Do you consider this insane? Your assertions that "everyone always must break the law" and "there are effectively no laws" seem a bit extreme. Ultimately, with any messy human affair, there is always going to be discretion involved, and I don't think implicitly codifying that is a bad thing. It does tend to work by and large. I've personally had much worse experiences with officials following the letter of the law than with them using discretion, but I admit I am not in any class that is often discriminated against.


The argument is that "our customers expect this behavior because everyone else does it." Not that they tried to change it and failed.

This is as unacceptable as telling people in wheelchairs “you don’t matter, our other customers prefer a bathroom you can’t fit in.”

Well, there are a lot of non-ADA-compliant bathrooms out there, for one reason or another. But that's up to inspectors to enforce. If they're letting it slide in human-built businesses then AI-built businesses will hew to that.

It's also a lot different with a permanent installation that is verified once than this kind of tragedy-of-the-commons temporary minor abuse of public space.


The ADA is enforced by lawsuits — not inspectors — exactly because businesses can’t be trusted to follow the rules that most of their customers don’t like.

I mean, if it comes to a lawsuit, sure, but the system is designed so that permitting and inspectors catch most of it. If you're trying to build your bathroom under the radar without a permit that's an entirely different analogy.

But either way, it is the responsibility of the regulatory body to enforce. As other people have noted, this is not a Waymo problem, they're just following the status quo.


Again… it most definitely is a Waymo problem.

Exactly the case with the ADA. Since GOOGL is responsible for Waymo behavior, they will be liable in a class action suit where they willfully violated the law, putting others in danger, in selling their product.

There is not any way around it. You can avoid this issue like Lyft does, by having divers make that decision and by them being not worth suing, but GOOGL is worth suing, and you can’t intentionally violate the law and put folks in danger without it giving you massive amounts of liability.


Maybe, or, as we saw with ridesharing already, maybe they will change the laws. When push comes to shove, I don't believe there is enough will to overturn current practices to preserve the sanctity of the bike lane at the expense of car traffic.

huh? I work in construction (electrical drafter) and I've been called out for my installs not being ADA (after the designer gave me a non-ADA compliant design).

Google themselves also did this with Gemini, we saw how quickly OpenAI's lead was erased. It could make quite a bit of sense to use this as a crutch so they (Apple) can overhaul their own efforts free of production pressures.

I'm not really seeing it though. Apple is more hardware and holistic experience, they aren't traditionally pushing the boundaries of "web-scale" nerd software. As long as they can keep on top of the devices that end up in people's hands they will have a place and don't need to be an AI powerhouse. They're doing just fine using Google Search.


At the end of the day the only way to get competence and capability is by doing things even if you don’t know how.

And early failures is much more acceptable than I think most people expect.


Companies can (aqui)hire expertise as well.


I feel I've had the most success with treating it like another developer. One that has specific strengths (reference/checklists/scanning) and weaknesses (big picture/creativity). But definitely bouncing actual questions that I would say to a person off it.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: