The Missing Semester of Your CS Education (2020)
271–280 of 347 posts
Re: The Missing Semester of Your CS Education (2020)
#272My university had Dijkstra's quote "Computer science is no more about computers than astronomy is about telescopes". They made us aware of tools and we were free to use them as little or as much as possible to do the science. I always assumed that software engineering degrees focused on tools more than computer science degrees (among other differences).
Completely agree. Things like shell scripting, debugging tools, IDE usage can all be naturally picked up on the job given whatever tools that they recommend you use at their company. You know what you're not going to be able to pick up at your first software engineering position? Discrete mathematics or linear algebra.
However, knowing the tools of the trade is something that is invaluable. And yes, it can be picked up on the job, but deliberate learning and practice is more effective and less stressful.
Re: The Missing Semester of Your CS Education (2020)
#273Earlier quoted context omitted.
Once I learned how to use vs code productively it really changed my mind. The other day I needed to do a quick base64 encode and vs code had that. Same goes for formatting some json or doing a diff. It's all available in a single tool with no learning curve. Hell it even has git and git blame in there.
Vs Code is the gateway drug of real IDE's. Last time I checked, it still cant do things like navigate to definition, or rename a calss along with all mentions of it in comments. Or count TODO: comments
That said - I haven't used it in years. Way too heavy and Vim does all of those + modal editing.
Re: The Missing Semester of Your CS Education (2020)
#274Earlier quoted context omitted.
I use (Neo)vim as my daily driver, professionally (for the past 4 years, coming from Goland). I've found every other editor to be too heavy/slow (VScode/Jetbrains), or too noisy (regarding features). Neovim allows me to specify the precise minimum I desire to have a fully functional IDE-like experience (basically treesitter + LSP + DAP + minimal extra plugins). It's super fast, I'm already in my shell, and my memory…
Once I learned how to use vs code productively it really changed my mind. The other day I needed to do a quick base64 encode and vs code had that. Same goes for formatting some json or doing a diff. It's all available in a single tool with no learning curve. Hell it even has git and git blame in there.
Plus - modal editing :)
Re: The Missing Semester of Your CS Education (2020)
#275Earlier quoted context omitted.
I'm surprised anyone would object to this. Universities have a responsibility to prepare their students. When I saw the title I figured it was another "computer science" class. But the curriculum was a significant portion of what I lacked when I graduated, which prevented me from finding work for a year. Had someone at university told me before I graduated that I'd have no chance of finding work if I didn't know Git,…
Can you elaborate on how not knowing those things specifically is what led to you not being able to find work Did your interviews ask specific questions about Git, Linux things not covered in a standard operating systems course, and command line editing?
Re: The Missing Semester of Your CS Education (2020)
#276Re: The Missing Semester of Your CS Education (2020)
#277Earlier quoted context omitted.
I have this feeling that the kids who appear better at uni are the ones who happened to pick up certain not-quite-programming skills before they started. Basics of networking, how installation of programs happens, how to use the command line, that kind of thing. I looked over her shoulder as my wife was doing a CS degree, and I realised there's a bunch of these little things that make life a lot easier if you know th…
This doesn't fit my experience. I mean, yes, this was me. I came in knowing most/all of this. I knew six (or more?) programming languages, had at least played with CVS/SVN, had installed Linux (read: fought with the Linux bootloader to get my AMD CPU to boot without crashing), had dipped my toe in a few open source communities. But I was a tutor in college and I interacted with a bunch of people who didn't come in wi…
Re: The Missing Semester of Your CS Education (2020)
#278Earlier quoted context omitted.
There's definitely a thing with CS that, at least at more elite schools, there's an assumption that you more or less know how to program--at least a language like Python--and you also more or less know your way around a computer well enough to use it as a tool for programming. (Or you pick it up quickly on the side along with your full course load.) This is more or less unique among college majors outside of some art…
My school handled this cleverly by taking people with prior programming experience into a Haskell sequence, which suitably kicked our asses to the same degree as what the first-time programmers were getting.
When I hear people starting their CS degree with C++ or Java, it makes me cringe.
Re: The Missing Semester of Your CS Education (2020)
#279Earlier quoted context omitted.
Completely agree. Things like shell scripting, debugging tools, IDE usage can all be naturally picked up on the job given whatever tools that they recommend you use at their company. You know what you're not going to be able to pick up at your first software engineering position? Discrete mathematics or linear algebra.
Not trying to dismiss the importance of knowing discrete math etc. in general, but I would posit that vast majority of entry level swe positions require no knowledge of it. However, knowing the tools of the trade is something that is invaluable. And yes, it can be picked up on the job, but deliberate learning and practice is more effective and less stressful.
Directly, sure. I do think there is something about the rigor of the math thought process that lends itself to writing software. Thinking through algorithms and proofs is really not much different than writing code or debugging.
Even with tools I think learning concepts are better. I've used so many IDEs through my career, but they are all roughly the same conceptually. One thing that has helped though is embracing vim keystrokes and using them everywhere.
Re: The Missing Semester of Your CS Education (2020)
#280I have tried in vain to get this implemented at our uni. I can say a few things I find interesting: - Students used to get this stuff but no longer do, for example all workstations used to be unix, so when you left, you "knew" "unix" (shell, vim, etc) - Due to things like ABET, classes are crammed with need-to-know-for-accreditation info so, well, some items need to go by the wayside (many are in the MIT list) - Ther…
> I do not know many others who implemented something like that. the school I did in france, ENSEIRB-MATMECA, started with three weeks where you only learn shell commands, emacs, LaTeX etc before doing anything else. Here are the slides (in french sorry, although they all have useful reference cards at the end): - intro: http://mfaverge.vvv.enseirb-matmeca.fr/wordpress/wp-content/... - unix, shell: https://cours-mf.g…