Speaking with a family friend today, I remembered this post I wrote yesterday. Pursuing higher education means choosing to solve complex problems using your knowledge, not just implementing somebody else’s ideas. I’m sorry to say this but my interlocutor had a limited view of the work that can be performed by an engineer in computer science. The discussion was limited to “what programming languages do you know” and “there are good salaries in this field”. Well, I believe that doing a work where you don’t innovate (or at least design the solution) but simply implement isn’t so rewarding and doesn’t pay as well either.
The important thing to understand is that learning a wide range of subjects prepares you for tackling new technological challenges. You don’t just have to write a program that does some specific task, you should be able to think about what you can accomplish with the technologies you know of. That is what higher education should accomplish, and that is what engineering is about.
The work you do should help develop your skills, not just get you some money. You need to work in a team that constantly faces new challenges and finds solutions to them. You need to do things that don’t have an obvious solution and that aren’t easy for you. I believe that you gain knowledge mostly by doing what is hard. I also believe that learning by doing is very good practice.
To conclude, find a good university/faculty, broaden your mind by studying and work in a way that makes you create and innovate.