4 ms·
I view university education as poor-to-useless vocational training for software engineering as well as most if not all careers that aren't explicitly research-f
by advael 4y ago
I view university education as poor-to-useless vocational training for software engineering as well as most if not all careers that aren't explicitly research-focused, and I say that as someone who's gotten a master's degree in computer science, intended to get a PhD, and for the most part didn't for financial reasons. I really enjoy and respect academia, but it exists to train researchers, and the more advanced a degree you get, the more clearly that's their top priority and competency. A university simply isn't focused on building you job-relevant skills, and while you'll likely learn some incidentally there, there are much more efficient ways to do so. (For software, think code bootcamps, workshops and conferences, hackathons, mentorship from local communities of software engs, or even just autodidacting with internet resources and a fun project you came up with). That said, you can definitely leverage a master's program to get some in-depth specialization, build confidence as a researcher (Which some software orgs do like to hire), and sometimes the credential really will work in your favor. As long as that's true, it could end up worth it in terms of career advancement, but it could just as easily not at all. Personally, I think it's worth it anyway, but that's only because I intrinsically value educating myself, and find myself often wanting to move in a research-focused direction.
- galcerte 4y agoI'm currently in a master's degree in data science and I haven't really felt like what you said was happening; we were taught just the right amount of theory (how things like backpropagation, PCA, statistics, optimization work) but more advanced techniques were described only briefly, just so we could understand how to use them in our assignments, which makes sense given the little time there is. There was much emphasis on making use of a wide variety of techniques in practical scenarios.
- Big0_nlogn 4y agoI would argue a data science degree is less a Computer Science degree and more Mathematics degree. Programming is simply a tool. The real meat of it is the maths.
- mywittyname 4y agoI think a big difference here is program scope. A data science program is directly applicable to data science career because the scope of the program is very narrow. Whereas a computer science program is going to cover a good bit of material that is not directly applicable to a software engineering career.
- hardware2win 4y agoI believe masters is mostly waste of 1.5yr when it comes to time efficiency I did it mostly because it is easier to get visa Generally i do not consider higher edu institutions as a place where i can do/learn advanced stuff related to computers
- bo1024 4y agoI agree with some of the premise —- university education doesn’t focus on preparation for specific vocational skills. But you could say the same about high school. It doesn’t follow that reading writing and algebra are bad vocational investments, in fact the opposite because they support many possible vocations. As a CS professor, my goal is to push students to rewire their brains in ways that are better and more effective. It is also for them to gain foundational understanding that will allow them to learn advanced vocational skills. I teach theory so software engineering may be different. But of course I don’t want to teach something that will mainly be useful only for the next 2-3 years of their career, I want to have an impact on the next 20-30.
- hn_go_brrrrr 4y agoSo teach them the importance of testing, code review, and design documents. As someone who graduated 15 years ago, I feel like the only two truly useful things I got out of my CS degree were 1) lots of practice writing code and 2) my algorithms and data structures class. The latter was useful in exactly the way you hope for, but it was the only such class.
- ransom1538 4y agoI learned unit testing early at UCDavis. My professor would take in assignments via ssh, run them, if it failed, it would "echo F" for grade.
- professoretc 4y agoThat's how I do it, too. I give students a script which compiles their code with the test code (which is provided to them, if they want to look at it) and then runs it inside GDB (in case it segfaults or throws an exception). All of the tests are documented and, on failure, print an error message describing what was expected, what was actually returned, and include a URL linking to a fuller description of what might be going on. In the future I'm hoping to run their tests inside Valgrind to check for memory leaks, enable the various sanitizers, etc., and I also need to figure out a way to check for conformance with my code formatting standard, but for right now it gives students perfect knowledge of what their grade will be when they submit.
- eldaisfish 4y agothis is dangerously reductive and needlessly pessimistic. The power of a university education is on several levels. One is the community of peers that you are part of. Second is the ability to learn what you need to and to learn what the limits of your knowledge are. Tech changes quickly and no university syllabus will ever be fully up to date. Besides, that is never their goal. Third is to to provide a safe environment to try and fail. Finally, a university degree is a basic filter. Completing a degree shows an ability to learn new things, be tested and demonstrate a decent understanding. You may fault the methods or the result but the process is effective and no, bootcamps or community work are not a substitute. A university is not all about research but research is an extremely important skill to have. it manifests in ways that you may not imagine at the time.
- hardware2win 4y ago"Safe environment to fail"? What??? It is incredibly stressful environment cuz if you fail then youll have to spend more time (so less vacations), maybe even pay some $$ or at worst have to take course again
- fn-mote 4y agoFailure on a single assignment at university will not get you fired. Your team will not blackball you as incompetent. (Well, they might be upset but the next course you will probably be with other people.) There is time to learn that your habits need to be changed in order to be successful in the long-term. There is more support for investigating things that you think are worth investigating, and there can be positive reinforcement that some people find meaningful (e.g., repsect for presenting at student conferences) instead of "just" a paycheck. University certainly provides a way to establish your credibility and build a portfolio that can be broader than $dayjob gives you the opportunity to do. At the university there is very easy access to people with a very broad skill set. No need to beg HR to allow you to hire an ML specialist... just go down the hall and talk to Professor X. It's not perfect, and not everyone makes as much of it as they could, but there are big plusses to the university system.
- 4y ago