Live data from Hacker News

Teaching foreign policy majors to code

medium.com

41–50 of 57 posts

Re: Teaching foreign policy majors to code

#41

I must say I am conflicted to write on this subject. On the one hand I am a person who has a humanities background turned to coding (bachelor's on philosophy; master's on sociology) but on the other hand I am burned out now and unwilling to do anything code related thanks to previous employers so my outlook isn't a nice one. The problem I experienced was most of the companies want a bachelor of science or an engineer…

I've been programming for the vast majority of my life, professionally for something like 30 years. I've done other jobs as well. My general advice to people thinking of becoming a programmer: Go ahead if you like programming. If not, then there are almost certainly better jobs than this. Don't get me wrong. On paper it's attractive. Quite high salary. Casual dress. Often flexible hours. No heavy lifting. High demand…

> On the other hand, I've known a few people who are able to clock in and clock out, do a competent job, and not get too stressed about stuff. I'm still trying to figure out how they do it.

This is an amazing skill I only learned during a PhD, and only after burning out half way though.

Obviously, step 0 is clear boundaries and reasonable work hours. Clock out at 5 or 6 (or 7 or whatever -- point is, put in your 40 hours and leave).

After that, things get more difficult.

For me, the answer was to work out directly after work (so before the commute home even!) and to listen to an interesting audiobook/podcast during my workout.

That way, when I got home, I would have something on my mind other than work. Fortunately, my personality is such that as long as the audiobook/podcast was interesting, that's what I will focus on/think about the rest of the night.

Re: Teaching foreign policy majors to code

#42

I must say I am conflicted to write on this subject. On the one hand I am a person who has a humanities background turned to coding (bachelor's on philosophy; master's on sociology) but on the other hand I am burned out now and unwilling to do anything code related thanks to previous employers so my outlook isn't a nice one. The problem I experienced was most of the companies want a bachelor of science or an engineer…

After all those humdrum job interviews, skill tests, certification badgering; what I experienced is writing code that generates a sql query to the parameters that's taken from the frontend which had NOTHING to do with interview questions or the skills demanded by the employer.

Back in the mid to late 2000s, I recall seeing and hearing management say, "we just need a few Google-quality engineers". There was this pervasive sentiment that if they could just find good enough software engineers, it would somehow make up for the fact that the company had no leadership or direction.

That, combined with the competitive nerd gene, zero objective basis for interview techniques, and an attitude of "any reason to boot this person" rather than "how can this person contribute to our company?" has gotten us to where we are in this toxic industry.

Re: Teaching foreign policy majors to code

#43

>>> More broadly, this illustrates that there are hidden traps of confusion and misconceptions among first-time programmers that are very hard to see if you’ve been programming for a long time. This may happen in other subjects as well. I taught college math as an adjunct for all of one semester, and discovered to my surprise: 1) None of my students knew the meaning of "show your work." Hint: It doesn't mean turning…

> 2) When I asked the math professors how to explain "show your work," some of them bluffed and blustered, but none of them could give me a straight answer. At worst, I got, "they should just know." It sounds like you were teaching calculus or maybe college algebra ("they should know" is actually good advice for the higher level mathematics courses -- most departments have a whole course that's more-or-less about how…

I'm not conceding that it's reasonable for a professor to answer something with "they should just know," but I think the issue here is that they seemed incapable of explaining it. It's one thing to say to a class "you should know how to $x, so I'm not going to teach it to you right now" but another entirely to be either unwilling or unable to explain exactly what they mean to a colleague.

Re: Teaching foreign policy majors to code

#44
post #17

Starting off with C? Ow. R or Python seem like they'd be much better choices for something students would actually use in the future, given their data analysis tools.

They don't start with C, they start with Arduino, which incidentally requires C++. The big difference is that you can easily have blinking LEDs, sensors and what not, which makes the act of programming more "concrete".

Yes. To bring other up to speed, the world of low cost "hobbyist" microcontroller boards has converged on the Arduino development environment, which is based on GCC. In fact I think that offering a widely available, free, and tolerable firmware development environment was a major breakthrough for hobbyist embedded systems.

Using C is not as bad as it seems. For one thing, embedded projects always start out a lot smaller than software projects on a big computer. You spend a lot of your time as a beginner, understanding the hardware side of things, such as interpreting the numbers associated with i/o pins and other devices. In the entire duration of a beginner course, you might never get past programs of maybe 25 lines.

I use microcontrollers in R&D, and have been quite happy sticking with Arduino based boards.

Re: Teaching foreign policy majors to code

#45

>>> More broadly, this illustrates that there are hidden traps of confusion and misconceptions among first-time programmers that are very hard to see if you’ve been programming for a long time. This may happen in other subjects as well. I taught college math as an adjunct for all of one semester, and discovered to my surprise: 1) None of my students knew the meaning of "show your work." Hint: It doesn't mean turning…

It means "write down a good argument for your solution being correct". And good means roughly that every step of the argument follows trivially from the last. And what counts as trivial depends on which course your are taking.

Oh and the argument doesn't have to be (exclusively) verbal. It can consist of diagrams and symbol manipulation.

Re: Teaching foreign policy majors to code

#46

>>> More broadly, this illustrates that there are hidden traps of confusion and misconceptions among first-time programmers that are very hard to see if you’ve been programming for a long time. This may happen in other subjects as well. I taught college math as an adjunct for all of one semester, and discovered to my surprise: 1) None of my students knew the meaning of "show your work." Hint: It doesn't mean turning…

> None of my students knew the meaning of "show your work."

https://www.boredpanda.com/funny-math-answer-drawing-bobby-s...

Re: Teaching foreign policy majors to code

#47
post #9

I think the Professor is vastly overestimating how much his students benefited from this exercise. What they need are data analysis and modeling skills. R + Rstudio would be the perfect tooling for them. Laudable goal nontheless.

That would not have been useful at all in the course - which involved programming an actual device, powered by an Arduino.

Re: Teaching foreign policy majors to code

#48
post #5

Earlier quoted context omitted.

Or Julia if you want to prepare them for the future.

I'm a big fan of Julia, but I wouldn't say that it's a great introduction to programming. Python is the way to go IMO, unless Julia really takes off.

Why isn’t it a good introduction to programming? It has a really consistent syntax, and polymorphism via multiple dispatch is a lot simpler to learn than polymorphism via classes imo.

Re: Teaching foreign policy majors to code

#49
post #43

Earlier quoted context omitted.

> 2) When I asked the math professors how to explain "show your work," some of them bluffed and blustered, but none of them could give me a straight answer. At worst, I got, "they should just know." It sounds like you were teaching calculus or maybe college algebra ("they should know" is actually good advice for the higher level mathematics courses -- most departments have a whole course that's more-or-less about how…

I'm not conceding that it's reasonable for a professor to answer something with "they should just know," but I think the issue here is that they seemed incapable of explaining it. It's one thing to say to a class "you should know how to $x, so I'm not going to teach it to you right now" but another entirely to be either unwilling or unable to explain exactly what they mean to a colleague.

Keep in mind that teaching is its own skill. Especially in universities, that skill can get awfully specific awfully fast.

In particular, for a TT professor at an R1, odds are extremely good that they've NEVER taught anything below calculus and may have never even been the instructor of record even for calculus courses! They were hired to do research and teach graduate/upper-level undergraduate courses.

Teachers that know how to explain and assess everything in a graduate analysis course with perfect clarity might not know how to handle the situation where a student doesn't know what it means to "show you work" in the context of calculating a derivative or solving a linear equation. In fact, they might not have even thought about learning/teaching that material themselves since early high school or maybe even middle school. This doesn't make them a bad teacher. It just makes them a bad calc I/college algebra teacher. Which is okay -- teaching those courses is not their job and is not what they were hired to do.

So this is somehow a bit like complaining that a web programmer isn't particularly adept at kernel hacking. That doesn't make them a bad programmer, it just means they focus is elsewhere.

Again, most universities do hire experts in teaching the lower-level courses. They're just not typically tenure-track professors.

Re: Teaching foreign policy majors to code

#50
post #45

>>> More broadly, this illustrates that there are hidden traps of confusion and misconceptions among first-time programmers that are very hard to see if you’ve been programming for a long time. This may happen in other subjects as well. I taught college math as an adjunct for all of one semester, and discovered to my surprise: 1) None of my students knew the meaning of "show your work." Hint: It doesn't mean turning…

It means "write down a good argument for your solution being correct". And good means roughly that every step of the argument follows trivially from the last. And what counts as trivial depends on which course your are taking. Oh and the argument doesn't have to be (exclusively) verbal. It can consist of diagrams and symbol manipulation.

This isn't a very helpful answer for students at that level. It's necessary to say these words at some point, but without lots of examples students will have no idea what "good argument", "follows trivially from the last", or "counts as trivial" mean.

The only method I've seen work for a large set of students is to show lots of examples of what "good" and "not good" versions of "show your work" look like. Preferably on problems that look similar to the homework problems. And emphasize this during lectures.

E.g. after doing a derivation on the board: "by the way, this is what I expect to see when I say 'show your work' on a problem."

Post reply on HN