Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

Comment Our computer came with a manual explaining BASIC. (Score 1) 515

I must have started around when I was 5, when my parents borrowed a Commodore 64 from our library (yes, they were very progressive and lent out computers in those days). They also had some programming books for kids in the library. But then they bought a Schneider Amstrad CPC6128, and it came with some games and a word processor. After getting board with the games, I read the manual that came with it. Those days, computer manuals were quite extensive. This one described every part of the excellent BASIC interpreter that came with the CPC6128. So then I started programming myself. At 11 or 12 years I wrote a multiplayer game for it with background music, in plain BASIC. Later my parents got an 8086, and I got an Atari ST. I learned various forms BASIC (GWBASIC, QBASIC, Omikron BASIC, GfA BASIC), as well as Intel 8086 and Motorola 68000 assembler. When I started studying, I got an PC with an AMD k6, with Windows for about a year, then I installed Linux (from the excellent Infomagic CDs) and happily used that ever after. I got a copy of K&R second edition, and started programming in C and later in C++, although I also learned some Perl, Tcl, Python, Delphi and Java along the way. Virtually everything programming related I taught myself.

Although I did attend mandatory programming classes at the university, I can only say that they teach you the bare minimum. But if you have a strong interest in it, and some good resources, you pick up programming much faster by doing it yourself. You become a really good programmer once you write a program that other people start using, and that has to install itself properly, do error handling correctly, and so on. Last but not least, keep improving yourself, look at what other people are doing, participate in the programming community.

A final note: I've seen people from all kinds of life discover programming. Some stumble over it accidentily ("oh wow, look at all those things I can do with Excel macros!"), some have a hobby that inspires them to code. If they are truly motivated they can use very difficult programming languages. But it also greatly helps if the barrier to entry is very low: having the tools preinstalled or very easily obtained, have good documentation, an accessible community. I particularly like the Arduino; even though you are programming C++ on an embedded system, the tools are just one "apt-get install arduino" away, the documentation keeps things very simple, and you can just do a few clicks and load an example program in the editor and get going.

Comment Re:BASICALLY (Score 1) 170

Yes, when I was a kid we had a CPC 6128 as well. It came with a few games, and a big manual that explained everything about the machine. In that time, it wasn't easy to get new software or games. And as a kid I didn't have any money to buy them. So I followed the same path (except I luckily didn't end up doing JAVA/SQL).

Immediate access to a programming environment + a real manual. That made it really easy to start programming. Unfortunately it's something you don't see much anymore.

Best game I wrote on the CPC was a split-screen two-player math game, where you had to solve simple equations by entering the answer using the joysticks. Configurable difficulty level for each player (so I could play with kids of a different age), and background music. And all of that in the excellent Locomotive BASIC, no need for PEEK/POKE/OUTB/CALL.

Comment Make sure your project is ready for the real world (Score 4, Informative) 107

Make sure the silkscreen contains enough information so that populating the PCBs is as free from errors as possible.
If you are using polarized components (diodes, electrolytic caps, etc.), it helps if all components are oriented in the same way.
If not, make sure it is properly marked on the PCB.

Even if the prototype works fine, spend some time hardening your project for possible problems. Add diodes to protect against accidental reverse polarity connections. Your final design will probably run for much longer than your prototype ever did, so make sure it doesn't get too hot, and that everything is well within the maximum ratings of the components. Not every power supply is the same, add a capacitor and/or line regulator to the input. Maybe some components can be put into a socket instead of directly soldered on board. LEDs are cheap, add some to provide diagnostics.
Make it easy for an end-user to reprogram the Arduino/Rasperry/whatever.

Comment Gender and skin color (Score 5, Interesting) 90

Dear Zach,

I noticed that your comics feature a remarkable balance in gender and skin color of the people you draw. There are also many same-gender couples. How do you do this? Do you decide yourself for each comic, or do you roll some dice? Do you randomize other things this way as well, like glasses and clothes?

By the way, I noticed that you maintain a list of things you cannot draw. But don't worry, you're way better than that Randall guy who can only draw black&white stick figures.

Comment Re:Define 'observe' (Score 1) 223

I am a physicist. However, both physicists and non-physicists wonder about that. However, this is just some meaning we attach to the formulas. It is unlikely we can determine the "truth". Personally, I don't let this bother me, the answer will not change anything anyway. It's much more productive to use physics to get results people can use. If we can use physics to make quantum key distribution work, does it really matter if it is because of "spooky" action or by a more mundane interpretation of the physics?

Comment Re:Branching Universe (Score 1) 223

Well, you could argue that within each universe, the laws of thermodynamics hold. There is no rule that says that if you have an infinite number of universes, the sum of the energy contained in each universe couldn't be infinite.

But remember, what we are discussing here are just interpretations and simple descriptions. Things like "spooky action at a distance" or "collapse of the wavefunction" are just meanings we attach to the formulas, it is not truth itself.

Comment Re:Define 'observe' (Score 5, Informative) 223

The best definition I have heard is this: suppose we have an observer O in state A, and a system S which is in the superposition of the states 1 and 2. When the observer observers the system, the state of S does not collapse, rather the observer and system become one, say OS, and is in a superposition of the states A1 and A2.

You can interpret this in various ways; one could say that this means the observer, or even the whole universe for that matter, branches all the time, and/or all possible states of the observer/universe exist simultaneously, however that again is just a description, not what might really be the case.

Disclaimer: I am a physicist.

Slashdot Top Deals

I don't want to achieve immortality through my work. I want to achieve immortality through not dying. -- Woody Allen