Live data from Hacker News

Advice to a novice programmer

blog.plover.com

91–100 of 158 posts

Re: Advice to a novice programmer

#91
post #48

Earlier quoted context omitted.

I found VSCode's remote plugins to be a really good option when the code lives on a shared remote machine over a slow connection. vim+scp is an extra step on each change, vim over ssh is just awkward, and sshfs isn't the most reliable piece of software.

> vim over ssh is just awkward What's wrong with vim over ssh/mosh? I was taught emacs by a grad student back in college and the ability to be fully productive on any server where I can install emacs has been a huge benefit to my career. I can't imagine vim is much different in that scenario.

Most people don't use vanilla vim, from what I've seen. It's not so great, out of the box. Definitely not comparable to any remote editor these days, that also supports vim navigation, like VSCode.

Re: Advice to a novice programmer

#92

I really have to disagree with the disparagement of vim/scp at the beginning. It's a bit slower to start if you begin with command-line tools, but the dividends payed out by learning the standard command-line utilities are huge. Learning the command-line utilities means you have the tool-set to build your own tool-set; since it's a lot easier to using CLI tools as building blocks for larger tools. At both of the last…

"dividends payed out" yeah no. crusty editing utilities don't give you superpowers, sorry. it's fine to learn them if you're interested but if you read the short intro docs on VS code and print out the 1 page keybinding cheat sheet you're going to be extremely effective without wasting time learning a bunch of quirky bullshit and coping with bad design for "muh historic reasons". and you can get learn you need to know about scp from `tldr scp`.

Re: Advice to a novice programmer

#93

> Something we discussed that I forgot to include in the memo that we discussed is: After you fix something significant, or add significant new functionality, make a checkpoint copy of the entire source code. This can be as simple as simply copying it all into separate folder. That way, when you are fixing the next thing, if you mess up and break everything, it's easy to get back to a known-good state. > I think CS c…

I talked to my department head about this before I graduated and the answer was basically that new programmers have enough to worry about already and, frankly, she didn't want to have to answer constant emails about how to do or undo this or that in git. I think this was fair enough. Version control is useful but git is a huge pain for newbies and the students who get internships or work on open source learn it on their own anyway.

Re: Advice to a novice programmer

#94
The commenters in this thread don't seem to understand what it's like to be a new programmer, especially when you may not have had a burgeoning passion for computers your whole life. I too am a huge vim user but I would never recommend it to someone who doesn't really care about programming. You can make it your whole career without using vim. The subset of programmers on HN is very different from the industry at large. Most developers clock in, sling some Java and PHP for a few hours, and clock out. In general, this advice is fine. Maybe a little opinionated but who cares, they're valid opinions. If you're on HN, you're probably already disqualified from ever having needed this advice.

Re: Advice to a novice programmer

#95

Maybe somewhat off-topic, but visiting this URL causes my Ubiquiti setup to trigger a Security Alert about an Incoming connection from the IP that hosts plover.com related to TOR (screenshot of the alert: https://share.cleanshot.com/J1cfSd1W ) Curious if anybody else experienced this, and what's behind it?

This was a fun distraction to track down...looks like the IP that this site is hosted on is in some IDS rulesets, likely this one, which Ubiquiti uses: https://github.com/vncloudsco/suricata-rules/blob/main/tor.r...

Looks harmless, but I learned something new today :)

Re: Advice to a novice programmer

#96
From MJD's post: I think CS curricula should have a class that focuses specifically on these issues, on the matter of how do you actually write software?

But they never do.

FWIW, MIT's "The Missing Semester of Your CS Education" attempts to deal with this lack, though, even there, it was an unofficial course taught in 2020 between terms, during MIT's IAP -- Independent Activities Period[1] -- and not an actual CS course.

[0] https://missing.csail.mit.edu/

[1] https://en.wikipedia.org/wiki/Traditions_and_student_activit...

Re: Advice to a novice programmer

#97

Earlier quoted context omitted.

I don't think he was shitting on command line tools; he was shitting on the remote machine his child was having to use, which was slow and unreliable. > Also big disagree on the final statement of the article. CS is not a vocational major, nor should it be. There are plenty of good post-secondary schools that focus on writing code and the tools you use to do so; CS curricula should not be focused on producing program…

> I don't think he was shitting on command line tools Yes he is; he put "You can't do good work with bad tools" in bold.

Well you'd find it hard to do good work with a hammer made from cardboard but that doesn't mean all hammers are bad.

Re: Advice to a novice programmer

#98

This is great advice, although personally I will continue using vim over vscode. If vscode is a sharp kitchen knife then vim is a katana sword. Novice programmers should probably not start with vim.

> " ...vim is a katana sword. " Vastly overhyped and overrated by Japanophiles, requires a lot of dedication and learning to use properly, and a hassle to use for day-to-day household tasks? Sounds about right, dohohoho. (I'm kidding, I'm kidding...)

No, aside from not being literally Japanophiles specifically, that does in fact sound about right, unironically. Likewise Emacs.

But VSCode (/JetBrains/etc) is more like a Internet-of-Things version of one of those meat-and-cheese-slicing machines they use in delis: needlessly oversized, optimised for producing stuff in large quantities with no attention to detail, and cannot be used correctly anyway because you can never be sure the next software update won't brick it or cause it up phone home all your information to the malware developer you got it from, because the S in IoT is for security.

Notepad, of course, is a rusty butter knife with suspicious-looking stains on it, while ed is a sharp piece of flint (with different suspicious-looking stains).

(Does

  $ echo '  printf("Hello, World!\n");' >> hello.c
count as tearing up raw ingredients with your teeth? This metaphore kind of got away from me.)

Re: Advice to a novice programmer

#99
post #43

Speaking of using sharp tools…. I really don’t get the love for VSCode. I’ve used Jetbrains for years and last week gave VSCode a really solid try. Man what a mess. Everything is a plug-in, plug-ins are inconsistent, getting basic things to work requires a tsunami of plugins. Everything feels half baked and duplicated and needing updates or abandoned ugh. Nothing feels professional because everything is a plug-in bui…

I used Emacs for about two decades. It worked well and did exactly what I wanted it to. Then I started using Copilot+VSCode while learning a for me new language (Python) this spring. I've grown rather fond of VSCode since, to be honest. This extension by Yuichiro Tachibana is the one to use to get Emacs keybindings, btw: https://marketplace.visualstudio.com/items?itemName=tuttieee...

I almost went to vscode for copilot, but then I found out emacs can run copilot too. It works great.

Re: Advice to a novice programmer

#100
post #38

Earlier quoted context omitted.

You don't even have to read a vim tutorial. The tutorial is already baked in. I learned vim by doing vimtutor every couple of months to learn more advanced features after getting basic navigation and editing motions down and forcing myself to use it for as much of my work as I possibly can. Learning vim early paid dividends in terms of productivity and also by forcing me to learn more about how to actually leverage o…

> I learned vim by doing vimtutor every couple of months to learn more advanced features after getting basic navigation I think you're missing the point. Should a novice programmer postpone their education by months because they need to satisfy the imaginary pre-requisite of learning vim via vimtutor? There's a lot of thinking involved at all levels let alone at the novice stages. I cant imagine how frustrating it'd…

You can go through vimtutor in like 30 minutes.

If it doesn't all stick, you can just go through it again once per Sunday until you internalize everything you need for everyday development, though this is unlikely to be necessary.

Post reply on HN