14 ms·
I can see why this topic is interesting to people on Hacker News, because "self-study" is not just an option in software development, it's really the only way.
by geebee 11y ago
I can see why this topic is interesting to people on Hacker News, because "self-study" is not just an option in software development, it's really the only way. Yeah, a lot of us have CS degrees or degrees in related fields, but in the end, you have to read, absorb, prototype, evaluate, adopt, or reject thousands of pages of dense material every year to stay current.
I really do think that software developers may be unusually well prepared to study law this way, because developers really are accustomed to massive amounts of self-directed learning.
- nmrm2 11y ago> Yeah, a lot of us have CS degrees or degrees in related fields, but in the end, you have to read, absorb, prototype, evaluate, adopt, or reject thousands of pages of dense material every year to stay current So do most practitioners in careers that are typically associated with or require a university degree: actuaries, accountants, engineers, lawyers, doctors, teachers, etc. all have to stay current with their respective fields and do so primarily through self-study. Of course there exist people in all of those careers who don't. But the same is true in software.
- geebee 11y agoI agree. The main difference is that all of the fields you've listed already have a formalized study and exam path. Software is one of the few knowledge based fields that you can enter purely on self-study at the highest level (I'm not sure about actuaries, if you studied math on your own, could you enter the actuarial field? Not sure about this one). As a result, I wonder if maybe software developers are a little more inclined, as a "profession", toward paths that are less formalized.
- msandford 11y ago> (I'm not sure about actuaries, if you studied math on your own, could you enter the actuarial field? Not sure about this one). Yes, anyone can take the exams, there are a handful. And if you pass them all nobody really cares about your degree. But from what I gather you'd better be pretty sharp to pull it off.
- nmrm2 11y ago> if you studied math on your own, could you enter the actuarial field? Not sure about this one Yes (edit: accidentally said the opposite of what I meant!). What you need to be able to do is pass the exams. BUT -- plenty of people with math degrees fail these exams. It's a hell of a lot harder than learning how to hack together a RoR site. See e.g., various discussions on http://www.actuarialoutpost.com http://www.actuarialoutpost.com You can also e.g., fill a number of supporting roles around actuaries without a college degree and then demonstrate competence by taking exams. > I wonder if maybe software developers are a little more inclined, as a "profession", toward paths that are less formalized. I think the fact that everyone in software has the same job title makes a huge difference wrt medicine and engineering. The guy hacking together cookie-cutter single server websites calls himself a software developer/engineer just the same as the Ph.D. hacking on compilers or ML algorithms. Everyone inside the field knows there's a huge difference between these two jobs, and that becoming the latter is basically requires a degree (perhaps even an advanced one) or really extraordinary dedication while the former probably doesn't even need a degree at all. So when someone says "do I need a degree to become a software developer? / Is a degree the fastest path to becoming a software developer?", it's an ill-defined question. What do you mean by software developer? Do you want a good salary doing whatever in boom times or do you want to do really technically interesting work with job security even in bust times? Conversely, most other fields tend to differentiate between job titles that require lots of skill and jobs that don't. For example, the difference between various levels of non-doctor healthcare workers (the whole range of nurses, and then everything up/down from there) is very institutionalized. Something similar happens in engineering -- plenty of non-engineers do engineer-y things in engineering firms, but some things you'd be insane to delegate to someone who doesn't have formal engineering education.
- tracker1 11y agoI find a lot of things to be interesting work... I enjoy learnign new line of business logic and rules more than writing software. I'd rather think about data storage-flow in application than conceptualizing it all, though I enjoy that too. I spent a little bit of time (less than a year) in upper management even, and hated it. I wouldn't be happy optimizing algorithms to serve ads better, or track financial systems. There's a place for that, sure... but it just isn't interesting to me. There's fun in trying to keep current with new things... Hell, I've been sticking with node.js since inception, and that's been a very wild ride. I like web based applications, despite other people hating them. In the end, I like delivering usability and solutions to the end user. I started out as a designer/artist in a former life (been in software for nearly two decades now). The conventional path was never the right thing for me. That doesn't mean I'm not able to do type of work being done at Google, Netflix and the like... And I've even considered it. Just because I don't have a degree does not mean that I haven't studied, and am not able to do "really technically interesting work." I've spent the better part of twenty years studying, designing and developing software systems, with far more real experience than someone stepping out of college. To think that someone who's spent that much time is always inferior to someone with a formal education is simply ignorant. As to engineering, take a look at where Radar came frome sometime. It wasn't formal educational engineers, it was guys with on the ground experience. There are a lot of truly great acheivments in humanity that didn't come out of a formal education. Okay, going to stop now, I just found the parent post very arrogant and frustrating. Arrogance irritates me more than any other behavioral trait.
- ZanyProgrammer 11y agoThough for applying for new programming jobs, it all comes down to algorithms and data structs for learning. I think a lot of the neat stuff programmers learn or do on their own is completely useless for whiteboard interviewing questions. "Look at this open source library I created and everyone uses!" seems to be useless for programming interviews.
- ZanyProgrammer 11y agoThough for applying for new programming jobs, it all comes down to algorithms and data structs for learning. I think a lot of the neat stuff programmers learn or do on their own is completely useless for whiteboard interviewing questions. "Look at this open source library I created and everyone uses!" seems to be useless for programming interviews.
- relkor 11y agoTo provide a counter argument, because I do not think the attitude should be "I'm not going to do open source because it is useless for programming interviews". Creating an open source library that others use is one of the strongest signals I can think of. Things that are involved with creating an open source library that I can think of off the top of my head: - Set up a build system - Use a test suite - Choose and follow a coding standard - Issue tracking - Bug report system - Source control (good branching practices/ whatever best practices your favorite source control promotes) - Create a specification / roadmap (months of coding can save hours of planning) - Documentation a) Determining convention b) Actually creating clear documentation c) Updating documentation through changes - Writing code that just works And that is all just by yourself. Then if you have users and are building a community - Communicate architecture to random strangers using specifications that they understand - Collaborate to develop roadmap /architecture with input from other developers - Communicate in a way as to not piss off strange developers who decide to help you for free The understanding of data structures and algorithms are only a small part of the puzzle. If a programmer can demonstrate all of those industry standard behaviors on their own time, then I don't care that much if they don't remember what a skip list or some other crap like that is. You can teach a developer all of the special data structures that your code base uses in a week. On the other hand it can take from months to never of steeping time in order to get developers up to speed with all of the house-keeping I described above. TL;DR Contribute to open source, start your own open source project because the skills required cover 90% of what programmers need to know. The CS theory stuff is the smallest and easiest part to train up. Show that you know how to execute well on the 90%, and companies will fall over themselves to train you on their own dime for the tiny subset of CS theory that they use.
- deleted 11y ago[deleted]
- HillaryBriss 11y agoA missing ingredient in Software Development and CS work is credentialism. There's no software "Bar Exam" you must pass before you are legally allowed to offer your services. And there's no "Supreme Court of Coding" either. But there absolutely should be both. Programming is littered with people "just trying things" and "hacking" and other crudities like "experimentation" and "exploration." We need regulation, regimentation and a predictable level of service. You should also be required to obtain a license (after a 90 day waiting period) for each computer you own, even if it's not going to be used for programming. It's the only way we can reduce the number of data breaches and crashes.
- snowwrestler 11y agoWhile the bar exam enforces a certain quality of knowledge, it also enforces breadth. Every lawyer in a given jurisdiction takes the same bar exam, and it covers all aspects of the law. The programming equivalent would be like forcing coders to demonstrate competency in everything from embedded systems programming to OS development to packaged application to web back-end, to web front-end, mobile apps, algorithms, networking, language design, compiler optimization, etc. The way it works now, coders can specialize and that makes it easier to self-study. Learning all about web front-end dev is a lot easier then learning about every type of programming there is. If you want credentialling, it would have to be more like medicine, where people have to pass the boards in their specialty only.
- unimpressive 11y agoI think you've fallen victim to poe's law. In fairness the parent comment gave few enough hints at satire that I'll need to see the author confirm they did or didn't mean it before I'm convinced either way.
- HillaryBriss 11y agoThank you for the feedback. I was attempting sarcasm. My hope was that the line "It's the only way we can reduce the number of data breaches and crashes" would seem immediately ridiculous to everyone. Given the history of surprising security bugs in mature code being discovered by a decentralized collection of users and hackers over long periods of time -- a phenomenon we've all witnessed over the years -- I figured the notion that a slow-moving, bureaucratic supreme panel of code judges effectively and decisively removing security problems basically didn't make sense. I don't know now. Maybe it makes more sense than I thought.
- OopsCriticality 11y agoIn fact, I'd argue it's a little harder for licensed professionals to not stay current with their fields due to the requirement for continuing education credits. Nevertheless, I don't see how any professional can be competitive in their field without keeping current, especially as the world continues to flatten. The idea that people in tech are "unusually well prepared to study law" through apprenticeship as framed by the GP is strikes me as arrogant and nescient to what other professionals do. Actually… it reminds me of an Xkcd: https://xkcd.com/793/ https://xkcd.com/793/
- gutnor 11y agoExcept maybe for doctors as I don't have any in my family, the rest are simply trained by their employer. That is hugely different from developer that are expected to not only train themselves at home but also need to research the field to know what they need to train into. The engineers in my family think I'm a failure because I don't seem to have enough value for my employer that it tries to train me. ( also the "it's just computer programming" that does not help )
- codingdave 11y agoI don't think law school can be fairly characterized as not being self-study. Admittedly, I only went for one year before deciding I did not want to go that route, but it was more like: "Here, go teach yourself this stack of cases tonight. I am going to rip your self-study to shreds in the morning."
- geebee 11y agoThere are degrees of "self-taught". There are programmers who majored in CS and stay up on the field, programmers who majored in math and worked their way through the algorithms book, programmers with no degree at all. As a math major, I guess I'll just punt and say the relationship between this and self-directed learning in law school "is left as an exercise for the reader". I do tend to agree with you that all learning ultimately is self directed, though again, that takes different forms. Here's the thing - if formally enrolling in law school can't be characterized as "not self study", what can be? We'd be striking the phrase from the language at that point. So while I agree that all learning is self-directed to an extent, I do think it's reasonable to say that programmers do tend to be more "self-taught" than lawyers.
- codingdave 11y agoOh, definitely coders are more self-taught, if we want to jump to that question. I was pointing out that law school is more of a progression through a self-taught curriculum than other formal educational pursuits. (After which you get to self-study for the bar exam.) In context of the original article, being mentored by a practicing lawyer is likely to be similar to law school in the amount of self-study, so the idea that programmers would prefer one mechanism over another due solely to self-study is not a premise that I agree with.
- noblethrasher 11y ago>I am going to rip your self-study to shreds in the morning. Which is what compilers, interpreters, and "Show HN" do.
- 11y ago
- bradleyjg 11y agoA big difference between the software development and the legal world, alluded to in the article, is that the legal world is the most snobby, credential bound field I've ever observed. While I've occasional seen developers express frustration that this or that employer strongly prefers graduates of a particular school -- by and large if you have a string of accomplishments all doors are open to you. The legal field is the exact opposite. There are entire career paths that are simply only available to those that attended one of a handful of law schools (the legal academy being perhaps the worst).
- samfisher83 11y agoI don't know about that. Going to standford, MIT, Harvard, etc. really helps you get ahead. Look at the Google executive list and their schools.
- scrollaway 11y agoSelection bias? The credentials of the type of people hired to be in such positions help those people get in those positions. Even without "discrimination" so to say, when you get hired right off uni instead of spending a few years freelancing or being a code monkey at some random shop, it makes a tremendous amount of difference to your career...
- Spooky23 11y agoThat's just a legal means of hiring people like you. You can't screen for people who look like you or originated from the same place, but you can narrowly focus recruitment.
- ZanyProgrammer 11y agoYou can't deny a Stanford CS degree will go further at pedigree obsessed firms (like Google) than a Humboldt State CS degree.
- morgante 11y agoSure, a top-tier degree will absolutely help you get a leg up. But there are law firms who pretty much only hire top 5 graduates. This is different from even Google, where a Stanford degree might help but there are still plenty of self-taught or non-Ivy developers.
- IndianAstronaut 11y agoAnother thing which might happen is software engineers automating away a lot of the law profession. Most of thexe exams are just memorizing, a system which is a remnant of the 1700s and 1800s. Not fit for an age where knowledge is literally at our finger tips.
- dctoedt 11y agoLawyer here. Memorization alone won't make you a lawyer, just as memorizing language syntax and API specs won't make you a programmer. You have to be able to apply principles in odd ways -- in software terms, edge cases and corner cases. As Justice Holmes famously said, the practice of law is ultimately about predicting what a judge is likely to do. [1] That requires understanding judges' motivations, which include, for example, (A) doing what seems to be the "right" thing; (B) not suffering the professional embarrassment of being reversed on appeal; and, (C) not doing long-term damage to society with a bad decision, a canonical example of which is the Dred Scott Case [2]. Finally, really good lawyers not only try to predict what judges will do, they also grasp the motivations of their clients and of their clients' colleagues, collaborators, and adversaries. I've long thought that the practice of law is like being a weather forecaster: You have to understand how the different atmospheric phenomena are likely to interact, and to make your best guess as to what's going to happen when a high-pressure system collides with an upper-atmosphere disturbance, etc. (I have no idea whether what I just said makes sense meteorologically). [1] http://www.constitution.org/lrev/owh/path_law.htm http://www.constitution.org/lrev/owh/path_law.htm [2] https://en.wikipedia.org/wiki/Dred_Scott_v._Sandford https://en.wikipedia.org/wiki/Dred_Scott_v._Sandford
- spronkey 11y agoWhat a cluster.. see kay. IANAL, and find the above description of what makes a good lawyer as repulsive as it is accurate. It's a self-fulfilling system, too, thanks to the learning of case law. Law propagates more law. This is why we have legalese. This is why we can't have nice things!
- dctoedt 11y ago
- DannyBee 11y ago"I really do think that software developers may be unusually well prepared to study law this way, because developers really are accustomed to massive amounts of self-directed learning. " Except the learning you do has massive amounts of feedback. You try stuff, it works, you try other stuff, it doesn't. You won't get that in a law office study program.