Archive: May, 2007

447238681_24ecd65de3.jpg

In the era of RSS feeds and Internet it’s easy to get used to getting all your information from only one source – the Internet. Although you could argue that you’re reading many sources (for example I’m subscribed to about 70 different RSS feeds) there are some really important alternatives that you shouldn’t ignore. These sources can broaden your world view and teach you different styles of looking at things compared to blogs. Also if you really want to be a constant learner, you don’t want to learn only when you are at your computer, do you?

  1. Books: I suggest you read both fact and fiction as they both can be enlightening in their own ways. From fact books you get new information and inspiration, and by reading great fiction you improve your language skills and imagination. Fictive novels can also make you think about life and in that way inspire you to learn more.
    Suggestions: Blink, Next of Kin, Space Trilogy
  2. E-books: E-books are often less polished than “real” printed books, but there are some important exceptions. Basically from an E-book you get the same benefits than from regular books, plus they are more easily available and often more up to date. The annoying part is that you’ll need a computer to read them, which makes them quite bad for reading in a toilet.
    Suggestions: Getting Real, Make a name for yourself
  3. Blogs: Although I said that you shouldn’t be relying to blogs only, I’d say that blogs are one of the greatest channels of media today. They are fast to read, up to date and there is a lot of free options for you to choose from. Make sure you use an RSS reader – otherwise keeping track of your blog posts pretty soon gets impossible.
    Suggestions: Copyblogger, Nate Whitehill dot com, Signal vs. Noise, Freelance Switch
  4. Scientific magazines: If you’re looking for a reliable source of good professional information, scientific magazines can actually be interesting reads. For example I’ve noticed that IEEE Software is a well-written and interesting magazine and beats easily all the mainstream computer journals.
    Suggestions: IEEE Software (let me know if you have some other favorites)
  5. Newspapers: Newspapers are good for keeping you up to date with what’s happening around your world. I’m currently mostly skipping these due to prioritisation reasons. A quality newspaper is of course better than a free one, but you shouldn’t ignore the free ones like Metro, because they are available when you have the one or two extra minutes to spend reading a newspaper (in a bus, waiting in a line and so on…)
    Suggestions: Metro
  6. Podcasts: One of the reasons why I’m currently mostly ignoring newspapers is that the commuting time that is best for reading newspapers is also best for listening to podcasts and I figured that I will learn more by listening to podcasts I select myself than some random news bites. The major benefit for podcasts in my opinion is that you can consume them when you’re on the move. In addition to that they can also teach you a thing or two about a foreign language, and often they are more interesting than just regular blog posts or articles.
    Suggestions: Hello, my name is PODCAST, Freelancing on Rails
  7. People: I would say that all the best programming advice I’ve ever received has come from other, more experienced programmers I’ve worked and talked with. This is an easy way to learn: hang out with geniuses, or well, even regular people who are experts on their field and have a curious mind, and you’re guaranteed to learn something new. Send them e-mail, chat over a cup of coffee, or go for a long walk.
    Suggestions: You can start from easy ones, like your grandpa and gradually start looking for and contacting people who you don’t know yet.
  8. TV: Every now and then there are some great documentaries, news flashes and interesting series or movies that can teach you new things or inspire your mind. Some things just are easier to understand when you see the picture and hear the sound, instead of just reading. On the negative side however, you cannot watch the shows when you want to (VCRs are good in this though – if you remember to schedule them), and it’s easy to get stuck to the TV screen and also watch all the nonsensical series that just eat up your time.
    Suggestions: Lonely planet, CSI
  9. Discussion forums: When I started game programming as a 15-year-old kid, I first read some books and browsed the Internet for tutorials on C, graphics programming and so on. These were good sources, but pretty soon when trying things myself I ran into trouble: everything didn’t quite go the way I wanted and I sometimes spent hours looking for something I had missed in the tutorial. During these years I learned to trust the Internet community of like-minded people learning the same things as I was. I joined the GameDev.net forums and asked my questions. Pretty soon someone answered and I wasn’t stuck anymore! So, go ahead and do a Google search for a forum on your favorite subject. People are willing to help, just make sure you help them in return at some point.
    Suggestions: GameDev.net, Suomipelit.com
  10. Lectures: If you have a possibility to attend university courses, go ahead. At least in Finland it’s free for all to attend lectures, even if you’re not a student. Of course you cannot participate in the exam or any exercise group, but go ahead and listen to what the lecturer has to say.
    Suggestions: Introductory courses in any interesting subject (e.g. programming, psychology or accounting). Also, you should check out MIT’s free online course materials

This was my brief list of great information sources, now let me ask you a question: what are your favorite sources of information?

Image source: stealthtractor @ Flickr

Scratch UI

As a kid I shared a Commodore 64 with my brothers. For a while we had a lot of fun playing games like Giana Sisters, Kickstart or Outrun, but pretty soon the urge to learn how to make the computer do what I tell it to do became irresistible. At the time programming was everywhere, even the operating system was a BASIC interpreter and when you were using the machine you were always running programs. No compilers or any special setup was needed. Even the Commodore 64 user’s manual was teaching how to program using BASIC!

That was more than 15 years ago, and times sure have changed. Getting started with programming is getting harder and harder all the time while the programming languages and environments are made more efficient and productive for the professional minds. The new languages, frameworks and class libraries are great for a seasoned professional, but they raise the bar so high that a 10-year-old kid will likely just click a few buttons and then give up saying: programming is too hard, or that programming is just plain boring.

APPROACHABILITY. That’s what’s missing from today’s programming environments.

A few days ago I bumped into a promising tool called Scratch, created by the Lifelong Kindergarten research group at MIT. Scratch is aimed at children of age 8-16, but if your kids can read, they will probably enjoy Scratch even at a younger age. My newborn is just four days old as I write this so I don’t yet have experience on how well this system really works for the target audience. But my initial impression is that Scratch has a great deal of approachability and it definitely is a step to the right direction in order to get children excited about programming and practicing their logic skills!

To try out Scratch I created a simple space ship duel game. There is no collision detection or scoring mechanism, but otherwise it’s kind of playable already. You can get the game from my Scratch profile page.

The best innovation in Scratch is that no typing and thus no remembering of code structures is required, but the programming is rather done by combining control structures and commands in a Lego-like way. For example, the following image represents the code needed for rotating my space ship left and right:

Controlling a space ship #1

Really simple, and at least to me also really easy to understand. When we go on adding the logic for moving the space ship it starts to look a bit more like programming. For a professional programmer it was fascinating to see these familiar structures on the screen without any real lines of code. I started even wondering why programming isn’t always like this.

More scratch logic.

And piece by piece a game was built. Some of the terminology is a bit strange (for example different animation frames are called “costumes”) and there is no object instantiation (to make two space ships I had to copy paste the ship “sprite”). Running the games is a bit slow, but that might be acceptable if we keep in mind that Scratch is meant to be the initial learning tool for programming – and when you collect more experience, you can actually move to real programming languages that then have better performance.

Maybe Scratch isn’t quite today’s Basic, as it’s not as widely available. Nothing really beats having the programming language as a part of the operating system. But on some other aspects I think Scratch is even better: it lets the user concentrate on the programming logic and forget about language details like semicolons at the end of the lines. The logical skills and feelings of success that can be gotten from playing with Scratch are anyway the most valuable parts of programming for kids even if they don’t become programmers when they grow up.

I have a son!

May 22nd, 2007 by Jarkko (2 Comments)

A beautiful boy was born on the 19th of May, at 3:18 PM. Both the boy and his mother are doing well, and the whole family is trying to get used to real family life. So, in a few days I’ll start slowly posting updates again – but until then, at least now you know the reason for the silence.

Oiva and I

Make a name for yourself - titleScott Ginsberg, better known as “That guy with the name tag”, is a 27-year old entrepreneur from St. Louis, Missouri who has built his business by wearing a name tag every day for already 7 years. I must admit: my first thought when I found my way to Scott’s web site was that this guy must be crazy! But I had to find out what’s with the name tag. I spent hours reading his posts just to understand why a person would choose to wear a name tag all the time… And then I found out that he even had tattooed the name tag on his chest! But at the same time I really enjoyed his writing. The more I read the more I began to like this guy. And his words made perfect sense: the name tag makes him more approachable and that in turn makes people around him friendlier!

Scott has written four books and five free e-books. He’s also maintaining a very active blog that is updated nearly every day. The book I just finished was his latest effort, “Make a name for yourself” which was just released on the 1st of May. The book can be bought from Scott’s website or Amazon – but it can also be downloaded as a free e-book. I must confess that because getting the e-book was so easy, I just went on and downloaded it. But now I’m having this enormous urge to go and order the book from Amazon – I’m sure that will happen any time during this or next week… So be warned, if you decide to read the free version, you’ll end up buying the book anyway. It’s just so much easier to grab a physical book from the bookshelf and read a few chapters while making notes.

The book is divided into 55 short chapters that each give you one more tip on personal branding, namely, making a name for yourself. The key point in the book is that your personal brand is created by being honest: letting yourself be who you are and making others see your true self. What’s nice about this approach is that you can easily read just one chapter whenever you have a few minutes of free time at hand: in a bus, at a restaurant, waiting in a queue, and so on. But although you can read the text fast, this book definitely is not fast-food in the sense that you could forget about it quickly. At least for me each chapter is still raising new thoughts and questions forcing me to think about my life and ways to – well – make a name for myself. That’s also why I’m planning to buy the book after all: I’m sure it’ll give me new ideas still after the second or third read-through.

The book is full of great quotes and I’ve already posted some of them occasionally to my tumble log, but here are two of my favorites:

“It’s simple, folks. Write everything down. Everything.”

“How many cover bands have ever been inducted in the Rock and Roll Hall of Fame?”

Finally, it’s up to you to decide whether this is the right book for you or not. But luckily in this case finding that out couldn’t be any easier. Just get get the free version, read a few chapters and decide for yourself. Then go out and make a name for yourself, before someone else does it for you!

Morning Coffee at Cafe Picnic

  1. Your life depends on it: Just think about when you were a child. Without your natural curiosity you would never have learned all the skills required for surviving as a grown up human being – and the consequences could have been disastrous! Just think about all the things children need to learn: talking, listening, crawling, walking, jumping, recognising what can be eaten and what cannot, not touching hot objects, not going too close to snakes, driving a bike, saving money, investing on stocks… I could go on for many pages.
  2. Your career depends on it: So, you know COBOL? Good for you, but although some years ago it was a modern programming language, most of the programming jobs today are for Java programmers. And soon that’s going to change again: Ruby on Rails is becoming more and more popular, and the next generation is already in the making. There is no more escaping from the fact that the only thing that stays the same in today’s business environment is change. Everything changes, and you are required to be one step ahead – or at least following really close. Being curious and keeping an eye open for all possibilities to improve yourself certainly helps.
  3. Your brain depends on it: Most scientists agree that learning does the same to your brain as running or gym training does to the rest of your body. It has been found that a higher level of education lessens the risk of Alzheimer’s and makes the symptoms start later compared to people with little or no education. The Alzheimer’s Association web site’s number one brain health suggestion is perfectly in line with my theme: “Stay curious and involved — commit to lifelong learning”
  4. Your understanding depends on it: The more you learn the more you understand about Life, the Universe, and Everything. A wide knowledge on many areas makes you more prepared to receive new information and critically assess it’s quality and importance to you and your goals. You can compare the new information against material that you have accumulated to your mind through a life style of continuous learning and curiosity. This way your curiosity leads you to make wiser decisions and less suffering.
  5. Your happiness depends on it: A curious person is rarely – if ever – bored. The smells, the colors, the way how a bus driver controls his car, can all lead to rewarding moments of discovery. For example today I found out that a cucumber is actually a fruit. I had never thought about it before, but discovering it still made my day a bit brighter. Learning is much more fun than your Swedish teachers ever told you in high school!
  6. Your social life depends on it: Just admit it, curious people are more interesting than the rest of us. And the reason is actually quite simple: they know more about things, and therefore they can discuss all kinds of topics and usually even bring up some fresh and creative viewpoints to the discussion. Just remember one thing: your girlfriend might not be quite as interested in dinosaurs or new web development platforms as you are – so choose the discussion topics based on the people who you’re talking with. A wise man is more than just a person who knows a lot…

Tammisto waking up

This post appeared on my Tumblelog yesterday. However now that I am starting my real blog, I thought this is a great post to start with. So here you go: Start your day on the right foot.

Yesterday I wrote about making your goals public in order to make it easier for you to reach them. So, following my own advice, I’m now sharing my morning routine with you:

  1. Wake up early: 5:30 on working days, 6:30 on weekends (Thanks for the idea, Steve, Leo). It’s surprising how much more energized you feel waking up at 6 AM compared to for example 10 AM.
  2. Start your day with an appointment with yourself: On working days I go to a cafe that opens at 6:30, grab a cup of coffee and spend an hour in the corner table. I wish I could find a place that opens at 6, but so far this is the best I’ve found (a tip for entrepreneurs in the Helsinki area – you’d get at least one loyal customer by opening earlier). On weekends, like today for example, I stay at home for the appointment. (Thanks, Scott)
  3. Start the appointment by reading a few chapters from the Bible: I’m following the reading schedule from deliberatePeople, and writing notes about things I learn. A modern translation makes the text much more approachable so I’m reading The Message. (Thanks, Phil and Heather, Eugene)
  4. Journal your thoughts on life, goals and things learned during the previous day. (Thanks, Scott)
  5. Pray for the day. I give thanks for the good things that are happening to me, and pray that God will take care of my family, friends and everyone I meet during the day.

Then I am ready to get to work.