Today I had the opportunity of addressing a group of precollege Computer/Software students (part of what in Spain we called “ciclos de grado superior”, which are some sort of technical education courses at a preuniversity level). Some teachers from my High School invited me to take part in this event organized by the Andalusian Government which aim was to show these students experiences and ideas they could use in the future, either if they decided to go work in software companies or continue studying at a University level or maybe start their own businesses.
Of course for the event my slides were in Spanish, but the general idea was to give a (passionate) introduction to the interesting things you can do in Computer Engineering, and also to raise awareness about some things that are important and that maybe they won´t be told about, not even at University level.Some of my points were aimed at making people want to…
Learn!
- The most important part is to understand that Computers are an always evolving world, so you need some abilities to keep you updated. You need to read fast and know how to organize ideas and contents in your head. You´ll need to learn how to write properly and communicate with other people. Somehow the engineering community has managed to misplace in everybody´s head the topic of the thick-glasses nerd with basically no social skills. In real world you´ll work as part of a team of people including engineers, bussinessmen or localization experts. People with different areas of expertise and different backgrounds. A high percentage of your success depends on how you manage to communicate, discuss and compare alternatives and how you learn from their experience. If you were thinking about having a nice autist life as a programmer, isolated from the world in your cubicle, forget it
- Linked with this, pay attention to learn English (and other languages if you can).
- Another thing you want to learn as soon as possible is how to program in C. One of the reasons is that it´s the lingua franca among programmers. Almost everybody you´ll find during your programming career will know C, making it a very good vehicle for explaining ideas and algorithms. Lots of program languages you´ll study will have a resemblance to C or explain things in terms of “works like this C function”. Of course you should also consider that there are lots of both literature and resources available about it, which makes it easier than learning, for example, Haskell. But as a last reason think about the fact that C lets you REALLY know about what the machine is doing with your program. Understanding pointers, allocations, casting, callbacks … lets you look at your machine in a completely different way.
- This leads to a last point: in Computers, the important part is not only to learn HOW but to learn WHY. Technology seems complicated at first, but once you start relationing concepts, it proves itself really simple.
- By the way, I also recommended my all-time favourite book about programming: “Code Complete” by Steve McConnell. In my oppinion if you need to read just one book about programming, it should be this one.