MIT offers the "missing CS course"

  • Thread starter Thread starter scottdave
  • Start date Start date
  • Tags Tags
    Course Cs Mit
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
15 replies · 2K views
Physics news on Phys.org
Their idea of "version management" is to toss you at GIT. Sigh. Maybe *after* you learn version management you can look at GIT.
 
  • Like
Likes   Reactions: harborsparrow, jim mcnamara and jedishrfu
DEvens said:
Their idea of "version management" is to toss you at GIT. Sigh. Maybe *after* you learn version management you can look at GIT.
GIT should be as fundamental a tool for a programmer as Word is to a person writing a document.
 
  • Like
Likes   Reactions: pbuk
FactChecker said:
GIT should be as fundamental a tool for a programmer as Word is to a person writing a document.

That's as may be. But if you were trying to teach somebody to be an auto-mechanic, somebody who had never seen a hand tool, would you sit them down on the seat of a bulldozer equipped with a jet engine? Or would you *start* with "Now this is a wrench. You hold this end. You use it to tighten or loosen nuts. This is is a nut. Let's tighten it a bit."

Also, Word is not a *fundamental* tool to an author. It's a "place for my stuff." And I would not consider "Here, start up Word" to be any kind of instruction on how to author a document.
 
  • Like
Likes   Reactions: Tom.G and jim mcnamara
FactChecker said:
GIT should be as fundamental a tool for a programmer as Word is to a person writing a document.

I write lots of documents without using Word. If there is a fundamental tool for writing documents, it's a plain text editor.
 
  • Like
Likes   Reactions: Tom.G, jim mcnamara and DEvens
The first time a programmer modifies a file of code, version.c, and names the modified file version2.c, he needs to start using GIT instead. My guess is that it will happen in the first couple of days of programming.
 
  • Like
Likes   Reactions: jedishrfu
FactChecker said:
Parts of it look surprisingly old-fashioned. Doing data reformatting using sed, awk, etc. is, IMHO, primitive compared to Perl (and perhaps Python).
Years ago, I asked an engineer who was using vi why wasn't he using emacs. His answer was simple vi is everywhere on UNIX. This is still true today. I use vim a lot but every so often it's not there but vi is (as in a minimal docker image). The same goes for sed, awk and other "old fashioned tools". They are useful to get the job done quickly and arcanely in a script.

Usually, when my scripts become unwieldy maintenance-wise or comprehension-wise I switch and rewrite using pure python or python that calls UNIX commands. While you can use python as a script, sometimes the old tools make the script simpler to write.
 
  • Informative
Likes   Reactions: Klystron
PeterDonis said:
I write lots of documents without using Word. If there is a fundamental tool for writing documents, it's a plain text editor.

Sadly, it gets harder and harder to use the simple text editor and one is forced to write using Word. The only intermediate way is to use markdown markup language in plain text. However for markdown, formatting varies from tool to tool.
 
  • Like
Likes   Reactions: FactChecker
jedishrfu said:
Years ago, I asked an engineer who was using vi why wasn't he using emacs.
I have vim on my phone - an excellent editor for a tiny keyboard.
 
I used Word as an example simply because I have had this exact argument over GIT with management who disallowed open-source software. They appreciated the value of Word, email, etc., but saw no need for programmers to have a basic tool like GIT.
 
  • Like
Likes   Reactions: scottdave
FactChecker said:
I used Word as an example simply because I have had this exact argument over GIT with management who disallowed open-source software. They appreciated the value of Word, email, etc., but saw no need for programmers to have a basic tool like GIT.

I agree that does seem like a bad policy decision on management's part.
 
One of the best programming exercises I ever did was reimplementing a large portion of the unix core utils from scratch using the man page as a spec (cat, find, grep, sort, echo, tee, head, tail, split etc). I don't know if "More Python the Hard Way" was the first place to ever suggest this, but it's a great idea.

You learn how to program *and* learn how to use all these great tools.
 
chemisttree said:
What course do you take to know what “GIT” stands for?
One given by https://www.linuxfoundation.org/blog/2015/04/10-years-of-git-an-interview-with-git-creator-linus-torvalds/.
 
  • Like
Likes   Reactions: Nugatory