7 ms·
It's important to clarify that these are brand-new students who have never coded anything at all in any language. I'm not teaching them Java; I'm teaching them
by teach 10y ago
It's important to clarify that these are brand-new students who have never coded anything at all in any language. I'm not teaching them Java; I'm teaching them how to code and Java happens to be the language.
That said, I only make them use Notepad for a day or two. My goal is that they understand that nothing magical is happening. Java is just text, which can be written with any suitable tool.
After the first couple of days we switch to Notepad++, which has syntax highlighting and auto-indent.
(We would use Sublime Text, but the district won't approve "shareware".)
I do have auto-completion turned off in Notepad++, though. In my experience that only produces beginners that don't actually learn the names of anything.
Auto-complete is super helpful once you have a few years of coding under your belt, but IMO it is inappropriate for honest-to-god beginners.
- mikegerwitz 10y ago> I only make them use Notepad for a day or two. My goal is that they understand that nothing magical is happening. This makes sense. > I do have auto-completion turned off I also agree with this. I'm not going to start a debate over the topic, but I believe its benefits are best exploited once they are least needed. With regards to choice of editor: I don't know your district's rationale, but I personally wouldn't want to encourage use of an editor that they would have to purchase to use at home and get the same experience---it's not necessary in our field, and there are many good alternatives. Your choice was a good one. I can't speak for the editor (though I have co-workers that use it for light editing), but it is free/libre software---proprietary editors would send mixed signals, saying that it's great to be curious and learn, to share code with others, to modify your software to suit your needs and help your friends...except when others tell you that you can't. Don't impose limits on their ability to learn and explore. :)
- developer2 10y ago>> these are brand-new students who have never coded anything at all in any language Is this really a thing? I just can't imagine a student going into CS unless they have at least a bit of experience playing with it in their own time. As someone who started programming at age 7-8, I just can't believe people go into CS without a pre-existing interest in the form of a hobby. Do people really enter into CS for the money grab? No interest in programming, no idea what they are getting into, and solely interested in the salary once employed? That seems so counterintuitive based on the reason the majority of us enter the industry. Maybe this is where the 9-5ers come from? I can't say this without ego being involved: you can tell the difference between a "real developer" who spends some time most nights digging into new tech, vs. someone who is in it for the salary who adds nothing but code debt every time they touch the codebase because they never improve their skills outside of office hours. ie: The "senior" after 10+ years whose every commit looks like the work of a first-week developer.
- teach 10y agoComputer science is just an elective at my school. Students can also take a cooking class as an elective even though they don't plan to be chefs. Students have room in their schedules for several electives and mine has a reputation as a tough but rewarding course. The majority of my students just take a single class and go on to college to major in something else. Kids have different hobbies. I have students who've been playing soccer since they were 5 years old who don't play around with a computer for fun. Or they don't have access to a computer. (Many of my students are on free or reduced price lunch.) Limiting the profession to those who started naturally at a young age is a good way to keep out everyone but rich mostly-white kids with college-educated parents.
- Swizec 10y ago> Limiting the profession to those who started naturally at a young age is a good way to keep out everyone but rich mostly-white kids with college-educated parents. Counter-example: I started coding at 9, got my first at-home family computer 3 years later, and my parents graduated college when I was already in college. This was back when a PC cost more than my parents made in 2 months. Now laptops can be got for $300. It's not about rich, it's about having coding after-school classes as available as soccer (or whatever) practice.
- pessimizer 10y agoOr rather, it's either about rich or about having a adequately funded and provisioned school system for people who are not. I went through my first year at community college without even having a desktop computer. All of my home programming was with pencil and paper, and I used the lab. I can imagine that if you're 9, you may not have parents that can carve out an extra $300 so you can see if you like computers, or a lab at your school that has free computers that you have a sufficient level of access to in order to run or install the software you would need. I was in my 20s, and still limited.
- i_are_smart 10y ago> It's not about rich, it's about having coding after-school classes as available as soccer (or whatever) practice. Ok... so what about the kids who want to play soccer instead of being cooped up inside? The idea that you might have to choose between playing a sport and getting enough experience to consider going into CS/SE in college is ridiculous.
- thaumasiotes 10y ago> I do have auto-completion turned off in Notepad++, though. In my experience that only produces beginners that don't actually learn the names of anything. I found it a pretty surreal experience working on a Chinese (Java) code base. All the names were in English (comments were in Chinese, but anything that wasn't a comment was in "English"). Everyone used autocomplete. If a name happened to be misspelled on creation, everyone happily went with it forever. They didn't care. Even if e.g. you had a bunch of related methods like "dispatchAComponent", "dispatchBComponent", "dispacthCComponent".
- hacksonx 10y agoAt times even the power that an IDE brings aren't put into full use. The refactoring functionality in most IDE's makes fixing repeated typos easy but people still leave their code like that.