Live data from Hacker News

Teaching foreign policy majors to code

medium.com

31–40 of 57 posts

Re: Teaching foreign policy majors to code

#31
> Another problem was that I used several different ways to do the same thing in the code, without being clear about why. For example, I declared some parameters as constants and others (which weren’t being changed) as variables — mostly because I was being sloppy.

That's why C or especially C++ is probably the worst possible language to teach programming.

Also, be frank with your students from the beginning about one thing: there are areas that they should understand, and then there are areas that they should just treat as "magic" and not go into, on a certain level of development. Not because they're really magic, but just keep first things first.

Re: Teaching foreign policy majors to code

#32

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 for skilled workers.

On the other side: You have to concentrate to a level that most people can't even understand -- and you have to do it all day, every day. Nobody understands what you are doing and most people under appreciate the difficulty (which is actually a huge understatement). Many managers believe that the reason things are going more slowly than they would like is because you don't have enough stress in your life. Unfortunately, the reality is that while you don't have much day to day stress (unless you are are in dev ops), you have ridiculous long term stress. No matter what you are working on, you don't have enough information to do your job. As soon as you learn enough to do your job, the job changes. Your tools change on a yearly, if not monthly basis -- and the amount of learning necessary to get good at your new tools is a full time job in itself. On top of all that, the field is immature to the point that it is likely that every single person on your team has a different way to solve every problem. And they are all convinced that everybody else's solution is crap. And they are all correct (pause to let the implication sink in). You're going to get it wrong almost all the time, and it will take you something like 30 years (if I'm any measure) to realise it. But even when you finally figure something out, nobody will listen to you, because they all think you are wrong (and they are probably correct about that too).

It's a terrible job. Only do it if you really, really want to do it.

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.

Re: Teaching foreign policy majors to code

#33

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 think the job posting issue is partially related to recruiters not knowing much about technology either, so they stick to "measurable" means like degrees and technologies, even though it's often stupid. Also, job postings are generally optimistic, and you might still have a good chance if you don't meet all requirements. On the other hand, I also thinks it's not ideal for someone with only little software engineeri…

Surely the team hiring tells the recruiter what the job requirements are, rather than the recruiter just making them up?

Re: Teaching foreign policy majors to code

#34
>>> 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 in your scratch paper along with the answers.

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."

Re: Teaching foreign policy majors to code

#35

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…

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 Oh, this, this, this. So very much this . The fucking snobbery, and nerd signaling that goes on during a coding interview gets so thick, that sometimes I'll just laugh in someone's face and throw the interview. Hey, hey, buddy, are you cool enough to merge thi…

Another James Mickens throwaway spotted. Ex ungue leonem.

Re: Teaching foreign policy majors to code

#36
post #2

I understand why the teacher in this case hid the coding requirements of the course. His reasoning makes sense. But I'm not sure it was ethical misrepresenting the course even for the students own benefit.

So many students, it seems, are grade-hounds that try too hard to workaround topics they find difficult or uninteresting.

Sorry but, real world problems like foreign-policy practitioners have to encounter on the job don't respect _any_ boundaries, let alone boundaries about what topics one knows/doesn't-know/doesn't-have-to-know. For Christ's sake, these students were majoring in "Science, _Technology_ and International Affairs."

They had some coursework where they encountered a bit of programming and some hardware configuration, SO WHAT? It's good for them.

Now, if we can get computer science students to wet their feet in some public-policy...

Re: Teaching foreign policy majors to code

#37
post #25
post #13

Earlier quoted context omitted.

Possible overreaction alert...

Lying always being unethical is actually a relatively standard idea in classical ethical theories e.g. Summa Theologica, Question 110, Article 3. However, the statement that the class involves "no coding" could be considered truthful in the social context or as part of a use of mental reservation.

Lying can be perfectly okay under consequentialism, which also goes way back. Personally I'm not very convinced of ethical theories where lying is unethical in all circumstances (sorry Kant), and I suspect I'm not the only one. Stating that there exists an ethical theory that supports your point just isn't very convincing for people who don't subscribe to that particular theory.

Re: Teaching foreign policy majors to code

#38

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.

I agree, this doesn't make sense. Python especially strikes the perfect balance between learning programming concepts and being productive almost immediately in real-life. It seems like most of the problems the students experienced were lower-level CS details like types and pointers that didn't directly translate with the kinds of data analysis problems that they were likely be able to apply to their studies. If they…

I always recommend python.

You are teaching coding, not computer science and electrical engineering on Day 1.

Setting variables, printing things on the screen, creating loops, making your first functions- Thats day 1.

With that, I would assume most people become addicted to programming, when you make a function, you can feel the power of programming.

After that, I encourage people to solve a problem in their own life. Most of the time, you can rig it in python- but if they wanted to build an app, they are basically ready.

My objective is to give them instant gratification and feed into their personal goals.

Re: Teaching foreign policy majors to code

#39

>>> 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 to write proofs).

At research universities, the tenure-track professors rarely teach anything below Calc II, and might not teach any Calculus courses at all. Certainly nothing below Calc I.

If you ad junct again, consider asking the other ad juncts/instructors instead. They're more likely to have lots of exposure to that university's demographic in a relevant course.

Re: Teaching foreign policy majors to code

#40
post #33

Earlier quoted context omitted.

I think the job posting issue is partially related to recruiters not knowing much about technology either, so they stick to "measurable" means like degrees and technologies, even though it's often stupid. Also, job postings are generally optimistic, and you might still have a good chance if you don't meet all requirements. On the other hand, I also thinks it's not ideal for someone with only little software engineeri…

Surely the team hiring tells the recruiter what the job requirements are, rather than the recruiter just making them up?

I've seen recruiters do some really weird stuff, not to mention HR feeling the need to insert themselves into every process, despite their vast unknown-unknowns.
Post reply on HN