HN user

ht_th

635 karma
Posts2
Comments265
View on HN

I'd not worry too much about picking a major yet. Or rather, students typically need a couple of years in undergrad to figure out what exactly it is that they want, what motivates them, where their interests lie, etc.

I've seen top-students who got fed up with the field, or with academics in general, and moved into industry after a bachelors. I've also seen average performing students discovering a love for research and going that route successfully. And anything in between.

Heck, even discovering that a field isn't for you and switching majors or dropping out for a bit is fine.

So, I recommend going someplace/some major you feel at home and then try as many different courses and activities until you discover what drives you. Then decide where to go next from there.

ChatGPT Pulse 10 months ago

Is it? It'll take a while for fertilizer and sun placement to take visually effect, and there's risk that short term effects aren't indicative of long term effects.

How can you verify the recommendations are sound, valid, safe, complete, etc., without trying them out? And trying out unsound, invalid, unsafe, incomplete, etc., recommendations might result in dead plants in a couple of weeks.

I am not so sure. I've ran 98 on bad hardware, and it crashed regularly. So much so, that I installed linux on it already in 1998, and that was much more stable. It only crashed now and then. No doubt in both cases the poor hardware was the cause of it.

Anyway, two years later I got a brand-new laptop with good hardware that was running 98se. As far as I remember, it didn't crash during normal usage. By then I was studying computer science, and would sometimes write or run programs that would make it crash, but that was on me. I did dual boot in Linux, and that didn't have any problems on that machine either.

Fun fact, I still have that laptop, it's over 25 years old now, but it still works and runs Windows 98se!

Of course, hackernews or the font it uses (?), doesn't seem to support the bold and italics Unicode symbols. Although it does seem to support the supperscript ones.

The odd thing is, you can do quite some bold/italics/superscript in Unicode nowadays. Because, at least from the ASCII letter range, they have been used in symbolic ways in Mathematics, etc., and have been added to Unicode as symbols rather than bold variants of letters. For example:

, !

, !

ᴴᵉˡˡᵒ, ᵂᵒʳˡᵈ!

So, there's almost no bold/italic punctuation. And non-ASCII Unicode letters aren't "supported" this way either. But you can get quite far with "formatted" ASCII letters in Unicode, if you're so inclined.

In my experience, once teachers retire or move on, or a course gets mothballed, it's only a matter of time for course websites disappear or become non-functional.

If the course website was even on the open web to begin with. If they're in some university content management system (CMS), chances are that access is limited to students and teachers of that university and the CMS gets "cleaned" regularly by removing old and "unused" content. Let alone what will happen when the CMS is replaced by another after a couple of years.

I did follow a curriculum set by Dijkstra's students. In the first trimester, we learned to program in Pascal, so we knew what programming was. The next two programming courses, in the second and fourth trimester, "programming" meant proving programs correct. Using pen and paper. Often in one-on-one sessions with our teachers where we'd to demonstrate our proofs. Or the teacher would state a problem and then continue to derive a correct progam by construction, writing slowly on the blackboard. These programming courses were supplemented with logic, discrete mathematics, and other formal methods. And we had continuous mathematics courses as well, practical labs, electronics, databases, and whatever you'd expect in a computer science and engineering curriculum.

For most students this wasn't easy, particularly compared to the way most of them were comfortable programming on their own by trial-and-error hacking away at a problem. Proving programs correct by construction takes a different skill. At the same time, it wasn't particularly hard either once you got going.

I don't think this way of teaching and learning programming was very useful or practical. With Dijkstra's students leaving the university, or otherwise losing primacy at the computer science faculty, Dijsktra's ideas faded away from the curriculum. Since then—I returned twenty years later to teach at this university—, the curriculum is very like any other computer science / engineering curriculum. And students seemed to have as much trouble with it as before.

What I missed about the curriculum when it was gone, was the consistency it brought into the curriculum. The curriculum felt as one continuous track to some clear idea of what it meant to be a programmer in Dijkstra's style. If you liked that idea, the curriculum was a great guide. If you didn't, it felt as a waste of time.

Besides, who knows how long theonion.com will stay up. Or keeps giving access to all old articles?

After all, they've just been bought. Usually this results in changes, despite new owner's loud promises that nothing will change.

These aren't excuses, but observations.

I've taught in classes of 12 and of 32, the differences in students' behavior, and in reaction my own was huge.

Similarly, I've taught classes where students just came back from an hour of PA and classes that were the second class of the day. The former group of students had always trouble concentrating and focusing, whereas the other group would sometimes have trouble getting up to steam in many activities.

Similarly, I've taught classes that were obligatory for students and classes that were electives. Again, the differences in students' behavior was quite pronounced.

Given constraints and practicalities of our educational system, it is difficult to offer each student the best courses, activities, support, etc. they each individually need. Instead, you often end up compromising. Which isn't great. Particularly for students performing above or below average compared to their peers.

Anyway, just a frustrated ex-teacher here. Thanks for listening.

It starts with the name "human resources". All HR departments I worked with treated employees as resources rather than humans. Bureaucracy all the way, with a thin veneer of human connection that'd be gone the time you walked out of HR's offices.

I agree. And having to re-evaluate and improve your own mental models or local theories is part of learning anyway. That's not going away with these changes. But I think with these changes, the mental models will be easier to understand for teachers and closer to the model we aim for as teachers. As a result, it should be easier to nudge students into reforming their understanding towards the models we aim for. In particular, we can make easier programming examples because we can strip simple programs of a lot of more advanced boilerplate and syntax.

Yes! The easier it is to get started with a language, the easier it is to learn and teach. Rather than focusing on (fighting) tools, you can focus on developing understanding of the core concepts of (Java) programming with a suitable learning trajectory. That's huge. And a boon to keep a language and community relevant. Once schools and teachers move on to other languages for teaching, you have to fight to win programmers over to use your language.

As for the added complexity to the compile or run-time system, that seems mostly an issue for language implementers, not users. It certainly won't be an issue for beginning programmers, so for them and their teachers, there's no tradeoff to pay for.

In my experience teaching introductory programming with Java, the problem is very real. For beginning programmers, making sense of the first Java program(s) results too often in misunderstanding of all sorts of concepts.

Of course, you can tell students to ignore most of the code until later in the course when they'll learn all about it, but that doesn't work. They'll make sense of the code within their limited understanding of programming and frames of reference. They'll build local theories of how and why these programming elements, like "static", "class", "main", "String[]" etc. fit together, how they relate to error messages they get when their programs don't compile or don't work.

Then, when they do reach the place in the course when they're to learn all about these concepts, they have to reconcile their own local theories with the material at hand to create a more thorough and evolved understanding of the concept. That's often not an easy process. In many introductory programming courses, there's not much time for reflection. As a result, their evolving understanding is likely closer to their initial understanding instead of the ones we aim at as teachers.

What's not helping here is that as experienced programmers who have developed a deep understanding of these concepts to understand novice's point-of-view and their struggles with the material.

Learning and teaching is hard!

Worse, if stapling at the reception now takes significant more time than stapling before, that's costly too. Particularly when the stapler is in use when you need it, or someone borrowed it and now no-one can find it. Before you know it, you've wasted an hour stapling a stack of forms or so.

As an aside, the organization I worked at before had two to four secretaries per floor. Before the pandemic, most were in their offices when you needed anything practical, like staples, batteries, etc. After the pandemic, most of them work from home most days of the week. That's great for them, but I've had days that I had to go through the whole building to get this or that.

These small informal conveniences and ways-of-working aren't on the organization's radar, and when they're gone, it takes some doing to get them organized again. Until then, and until everyone in the organization knows about the new ways of working, this can be quite frustrating and inefficient.

No, but they might like the sort of projects the organization does with respect to complexity, or that they mostly serve governmental buildings, or that they work in the community they're part of, etc. In the end, you have to make a choice between organizations to work for, and usually they all pay more or less the same. So, what's then the deciding factor?

By the way, this definitely doesn't mean to glorify an organization and what they're doing. Far from it. They're just in it for continued existence and making some money, I suppose. But it is nice if an organization has some social utility, as compared to, say, sell advertisements for crap no-one needs. And I think, if that's important to you, you can refer to that when you're applying for a job.

Of course, if you're working in a field where there's much more candidates than jobs, this is pretty meaningless because you have to take whatever comes your way.

True, but among the organizations that have work and money you can do to get the money, some seem to have aims or products or work in domains that align better with your views on the world than other organizations. In the context of job-getting, money as an extrinsic motivator is a given. Parts of a candidate's motivation that are more towards intrinsic might be relevant.

I wonder, wouldn't it be better to focus on fine motor skills in (primary) education rather than penmanship? I mean, penmanship is becoming an anachronistic skill, and children see that too. I'd rather focus on fine motor skills with fine arts, calligraphy, practical tool use, and the like. That seems more fun and useful than penmanship.

Yes. Before the computer, it wasn't uncommon to write by hand and have dedicated typists type your work. Or have a secretary, assistant, or significant other do it for you. At first sight, there's no reason why this had to change with the introduction of the personal computer. But it did. Why?

I assume the answer is more complicated than just pointing to a technological advancement. As usual, social-cultural issues will have been at play as well.

When I was young, and I had to write with a fountain pen, to write meant to situate yourself to write. A clean desk, sit at it well, have some blotting paper, and make sure the pen is clean. Think about what you're going to write, and once I was prepared, take a sheet of fresh paper and start writing.

Nowadays, when I write by hand, it is always in haste, standing awkwardly in front of some flat surface, and using a scrap of paper and a partial dried-out pen I got for free a decade or more ago. No wonder my writing has gotten worse! And it wasn't good to begin with.

Now that I'm thinking about it, I've not kept the preparatory aspects of good writing from the past when I am "writing" on my computer. The keyboard is always there, a fresh "sheet of paper" always at hand, and it is so easy to edit and change my writing afterward, that I don't care much about thinking before writing.

Sure, not a problem. Most programmers do, probably.

However, I've seen students use Stack Overflow and other resources as a source of "program stamps":

- They enter their problem in an Internet search engine.

- Click on the first result with code in it.

- "Stamp it" on their own code: I.e., copy/paste it.

- Using editor/compiler, find any issues by trial and error and fix them so the editor/compiler doesn't complain anymore.

They might try a simple example or two to see if it works. And that's it.

There's not much reflection on their final solution, or on the bits they copy/paste. They don't seem to understand their solution, nor care about that or their problem solving process. They put in effort, they expect a passing grade.

Just Say No 4 years ago

As a teacher, I like to start with "No". Then, in the next paragraph, I explain why, come with alternatives, etc. This way I clearly and unambiguously communicate the answer, but I also try to be helpful.

Over the years I learned that doing this the other way around, thus starting by being helpful and then saying no, resulted in people seeing wiggle room and started to negotiated with me.

I think the parent meant that you need to check if these commands are executed properly, otherwise you get into trouble later. For example, if the toilet paper isn't added to the shopping list, and you go shopping with this list the next day trusting it contains everything you need, you're not buying the toilet paper. Similarly, if the timer is accidentally set to 100, you only notice it after, say, 20 minutes when there's black smoke coming out of the oven.

I don't quite understand. I like challenges; I don't mind doing "FAANG Level work", whatever that means, at a small company. I don't care much for salary beyond getting a good salary for my locale. Having a great work/life balance is much more important to me. I don't want a "FAANG Level compensation" if that means I've got to move, work crazy hours, have absurd living expenses, have a lot of interview rounds with stupid coding tests, have a continuous fear of layoffs, have a lot of bureaucracy, etc.

If I can get a 95+ on midterm and final I obviously understand the material.

That's assuming that these midterms/finals accurately and completely assess understanding of the material.

As a teacher, I need more assessment moments than one or two tests in a term to monitor, guide, and support students' learning processes, for all students in my class. This "busywork" gives me the extra input I need to adapt my teaching to my classes and students.

Of course, from my perspective, this isn't "busywork" because I try to create meaningful learning activities. However, from the perspective of some students, I can understand it feels like busywork. I try to differentiate, but that's not always possible, particularly if you're performing significantly above average.

The problem is that even if you are doing fine without the busywork, your classmates might not and need the training through busywork. Or they might need the structure and incentive to do something at all. Unfortunately, giving some students no work and other some work and other a lot of work will not go down well, particularly in larger heterogeneous groups. So we end up treating everyone the same, more or less. This can really suck for any student who's an outlier to the positive OR negative side.

Ideally, you'd get an education tailored to your needs, but in practice that's difficult to realize depending on where you live, your parents' background, etc. For example, if you're living in a smaller village with just a single high school, you don't have much choice. Similarly, if your parents don't understand what you need, they'll not go look for it. Or if your parents don't have the means to support your alternative schooling, bad luck. Etc.