$msg = ""; $myaddress = "sacha" + "@" + "sachachua.com"; $page = "2005.09.18.php"; $page_title = "2005.09.18"; $page_updated = "2005-09-1922:07:1322:07:13+0800"; $maintainer = "sacha" + "@" + "sachachua.com"; require_once "include/calendar.php"; require_once "include/planner-include.php"; require_once "include/header.inc.php"; ?>
Headlines for Sunday:
|A||X||@2000-2300 Work on lab report (mie1407f)|
|A||X||Answer question 3|
|A||X||Propose a mathematical model for the function|
|A||X||Find out what I was supposed to work on for the lab|
|A||X||Download my gmail stuff|
|A||X||Present the results|
|A||X||Review copy of lab exercise|
|A||X||Copy questions into lab|
|A||X||Concentrate on those sections|
|A||X||Buy screenprinting materials|
|A||X||Write a proposal for an upcoming Linux Journal issue (writing)|
I could tell you to focus on quality, not quantity. I could advise you to pay attention to what you need for your school and your career. Or I could point out that we could be missing the big picture here.
I think that how many programming languages you know is far less important than what you actually _do_ with those languages. A lot of people focus on listing programming languages on their resume, but they don't show how they've actually _used_ these languages beyond the toy exercises in the classroom.
I think this is where most graduates fail. That's why they have such a hard time finding jobs. They can list popular languages, but they can't show what they can do with them, and they can't speak with any real passion about their work.
What does it mean to have studied VB.NET for a semester? What does it mean to be able to make graphical applications in Java? What does it mean to have two years of experience in C++? It takes ten years to become an expert. There's a huge difference between ten years experience, and one year repeated ten times.
That's why open source projects are so important. They give you real-world opportunities to work with other people. If you're lucky enough to work for a company that'll pay you while you figure out a new language, good for you. If you're not, open source gives you a way to experiment and keep learning.
The amazing thing is that you don't have to know a lot in order to contribute. I joined the iPaq bootldr project only vaguely remembering C and without any assembly experience. I started maintaining Planner barely comfortable with Emacs Lisp. All you really need is the ability to read other people's code and create a solution that fits in--a skill highly prized by employers.
Your work will be reviewed by other developers, who'll tell you what you can improve and teach you better ways of doing things. It will also be inspected by your users, who'll judge your code not by how elegant it is or how long it took you to write it, but whether it works for them. And when you read other people's code, you're going to learn the idioms and tricks that people accumulate with years and years of experience.
Even more important: you'll pick up domain knowledge. Software engineers are useless. Generic software engineers, that is. Programming is not an end. It is a _means_. Learn enough about at least one area to make a difference in it. And you know what? If you find the domain you're interested in and you become comfortable with the programming languages you need to solve problems in that domain, then you'll probably be able to choose any job you want.
If you're not interested in the domain, however, then no amount of programming expertise can make your work truly satisfying and productive. You'd be a hammer in search of a nail, a solution looking for a problem. You need to be interested in your work. You need to see how you're making a difference. If not, it's just a 9 - 5 job with too much overtime and stress, and you're going to burn out.
So get out there, find out what you're interested, and learn with a purpose. Don't just collect computer languages for the sake of listing them on your resume. Solve real problems and make a difference, and you'll have plenty of experience and transferable skills to enrich your career.
Just for that, Ikea gets karma points. Read the blog post and see if your job ads are as good as that.
I wanted to get started in screen printing and decorating. I _could_ hand it off to someone to mass-produce, but I've got quirky ideas that would probably make learning how to do it myself pay off.
I bought a screen printing kit and I'll be making shirts for myself. I'll also make a special D*I*Y Planner shirt for Doug. =) And if I really like it, I'll play around with other designs...
I also bought some canvas so that I can make my own patches. I want a D*I*Y logo on my bag. Or a geek logo. Hmmm. Maybe I can do something to make the patches hotswappable...
I'm tired! I'm not going to make the shirts today. I'm going to rest a bit and then work on my lab report so I have something to show tomorrow. =) I'll do the shirts tomorrow night.
Hats off to them! =D