Earlier quoted context omitted.
The first thing I do on any linux box is remove Vim for nano Vim is like Dvozak keyboard. Consistency and standardisation is more important than 1% performance improvement.
Wait - you actively remove vim? Or you alias nano to vim? Neither of those make sense to me. Why not leave it there and just not use it? Every system I've ever been on has vi and nano and usually vim.
The Missing Semester of Your CS Education (2020)
321–330 of 347 posts
Re: The Missing Semester of Your CS Education (2020)
#322Re: The Missing Semester of Your CS Education (2020)
#323Earlier 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…
>Basics of networking, how installation of programs happens, how to use the command line, that kind of thing. um yea thats my job dude and i fought for it so other people should too these people waltzing in not knowing shot should not get into CS
It's not like how it was when I was growing up. We spent $2000 on a Gateway PC that I had full admin access to, and unfiltered internet. Now that kind of money is being spent on cellphones in the household. Because I had that kind of access I was bricking the OS (and reinstalling it), Mailbombing people's AOL inboxes, putting Sub7 on Kaza and Limewire and remotely messing with peoples computers.
The computers at school were only networked my senior year. Even then they were basically wide open.
Me and my friends effectively operated a screwdriver shop out of whoever's house we happened to be at. We were trying to host game servers on whatever we could cobble together.
None of our families had cellphones because they were still only used by businessmen. Computing priorities were way different and how you were exposed to them was different as a result.
None of those opportunities are anywhere near as common now. Kids get devices in schools but they're basically bricks that log everything you do. Computer Labs are rare and their access is fully locked down. Most students first personal computing device is a cellphone, and more likely than not it's an iPhone. All phones are super locked down but apple's even more so.
The market has changed. The days of open computing are now relegated to the back of the line or for those who can afford it.
So it's no wonder a class like this exists. We see similar issues in middle school where students don't understand what folders are or where their files are stored. Phones and tablets make it so easy you never have to think about it. This also extends to collage as well.
Re: The Missing Semester of Your CS Education (2020)
#324Earlier quoted context omitted.
Software development is a trade, if all you aspire to be is a WordPress or frontend developer then you don't need a fancy degree, you can just as easily go to a 6 to 8 week code camp for that. Computer science is a pathway for those that want to delve deeper, and that necessitates rigorous fundamentals in applied mathematics and information theory.
> Computer science is a pathway for those that want to delve deeper, and that necessitates rigorous fundamentals in applied mathematics and information theory. I dare say that one can go through a whole career as a software engineer without spending a single semester learning about algorithms, in the sense that you just start learning about them in a JIT fashion if/when they become an issue, which is rarely. Some of…
When I started doing job interviews it was a little bewildering how much some companies focused on this. I ended up taking a job whose interviews focused on more practical skills and also stressed a good culture fit and understanding of development practices. It feels like a place I'll be happier.
I think you're right about the JIT aspect to this sort of thing--that's really what being an engineer is about in my experience. When you encounter a problem, figure out how to do it better. If my filter/sort/whatever is too slow for a specific application, I'll do some research and implement something more appropriate.
Re: The Missing Semester of Your CS Education (2020)
#325Earlier quoted context omitted.
Lots of people at my work use it, but I don't know if I'd consider it essential. If you can use any editor/IDE very fluently that's good; probably doesn't hurt to learn with vim if you don't already have that.
if you ever find yourself needing to modify files at the shell on any sort of remotely modern unix/linux system, you're probably going to have vi or vim available. it's worth knowing an editor that doesn't require 6GB of RAM and a graphical environment, but it's probably not going to be most folks' primary editor. ;d
But I'm not allowed a GUI? Ok… then, I'll choose an editor with a keyboard-driven menubar across the top (keyboard shortcuts appearing in the menus), a status line on bottom, and as many keycombos that match my preferred GUI as possible.
Failing that, I can muddle along with Nano.
Until some once-in-20-years task actually requires using an arcane 'editor' that assumes I live in PDP-11. (^:
[1] Wellll… I sometimes forget typing BASIC from magazines into an Apple II and making small changes.
[2] And it was luxurious…until I tried to fit 8 MB of a CD-ROM app into compressed RAM.
Re: The Missing Semester of Your CS Education (2020)
#326Vim? Really? No text editor will make you a good programmer. I barely use/know Vim with 20 years of programming experience.
I think the point is to not leave yourself in a position where you're not proficient with any text editor at all. This is an actual issue. Some students show up at college without ever having written a line of code and without knowing how to open a plain text file, make changes to it, and save it. It doesn't matter that much which one you learn. If you already have an opinion about which one you like better, you're a…
What you'll think you know about "how editors work" will be actively harmful. I've seen and heard of people resorting to pressing the computer's reset switch when they can't figure out how get out of a 'real' textmode editor whose behaviour defies all commonalities. And good luck getting to the man-page if you can't get out of the editor.
When I've needed to use one of those, I fortunately had been provided exact steps or had a 'real user' who could help me. I've had a few goes at the man-pages ages ago (which were not installed on one or two systems!), but paging through them just made 'real' editors seem even more like "not a usable editor" to me. Too dainbramaged by having grown up with 'intuitive' editors that give more affordances.
[Edit: missing word]
Re: The Missing Semester of Your CS Education (2020)
#327Earlier quoted context omitted.
I think it's harder if you already know C# or some other OO language. I really think it would be easier, or about the same, to teach a raw beginner the basics of F# vs C#. The only reason F# winds up feeling harder isn't so much how F# works, but simply because the entire dotnet environment was built for C# first, so you do need to know how to handle the C# style. I do think that if you could just pick one and then s…
F# has two ways to invoke functions, ‘f a b’ and ‘f(a,b)’. You need to know when to use what. There is no way this is simpler to beginners compared to having one consistent way. C# is not a simple language, but F# has basically all the complexity of C# with OCaml on top. Either C# or OCaml would be simpler to learn, although the combination is powerful.
`f(a, b)` looks like a call to a function that takes a single tuple as its argument. So I would expect `f` to have the type signature `A * B -> C` instead of `A -> B -> C`. Is my intuition wrong? If it is, then what does F# use the parenthetical syntax for?
[1] https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
Re: The Missing Semester of Your CS Education (2020)
#328Earlier quoted context omitted.
I’m just not sure how jot knowing these thing practically stopped you from getting a job. Did they specifically ask about them in an interview?
Yes, they were asked about in interviews, when I managed to get interviews. Also, since I wasn't using git (and hadn't even heard of git or github until after I graduated; mind you, this was in 2012), I didn't have any visible work to highlight when responding to job listing. I also didn't have any demonstrable ability to collaborate, dive into existing projects and find my way around, or do things like make PRs. I d…
Regardless, I have my doubts that not knowing about git or software tooling held you back. I know many recent grads that don’t include anything about Git on resumes and it doesn’t come up in interviews.
Re: The Missing Semester of Your CS Education (2020)
#329I love vim, it's great to know how to navigate it, but I have met very few people who use it professionally. I'd love to hear others' experiences, there.
Re: The Missing Semester of Your CS Education (2020)
#330Earlier quoted context omitted.
LaTeX was written by a famous computer scientist to write a computer science book. Yes, mathematicians love it. But computer scientists were first there.
Interesting, do you think Lamport doesn't think of himself also as a mathematician? How about Knuth?
All of their most famous work is in computer science.