I know you won't believe me at first, but please keep reading this letter to the end. You are in your early 20's and you don't believe most things you can't see, but I have to try anyway. I am the older you, writing from 2017, almost 2018. Yes, you are going to make it that far.
I am told that I can't tell you details of what is going to happen in the world in the future, so don't ask. Something about time distortion, merging of dimensions with cataclysmic consequences; sounds very "back to the future" to me. I think they are a bit melodramatic, but you never know.
Thankfully, I was given permissions to share a few small things about your future, things that won't have any horrible side effects. I don't understand how it works, but I have to trust it.
The good news is that I can also give you some career and life advice, so here I am. I can't change your life, and I don't want to given that I am doing fine, but I can make it a little easier for you.
First of all, you might be wondering why I am writing this letter in English instead of Italian. I grin thinking that you'll have a heck of a time reading it, so good luck with that.
I can't give you the specifics, but I suggest that you study English better than you did so far. We both know that you don't like it, but that will change. You'll eventually love it, and you'll need it more than you can imagine.
Trust me, take the little orange Italian/English dictionary that you keep in your desk's first drawer, and put it to good use. Also, make friends with somebody who speaks English only. You'll find plenty of them where you are, and it will serve you well.
You are in college now, and you are running your software business. You sleep an average of 3 to 4 hours every night, and you are already making more money than your college professors, or at least you think you do.
I know you like that idea, and it makes you wonder why you are in college in the first place. Make it easier on you, get over it and stop torturing yourself. College is good, and running your business is good too. Manage your time, do both and keep doing what you are doing. The experience will be invaluable in the future. Just stop questioning it. It is not healthy.
Try to get better not only at writing code but also at dealing with people. People skills will be very advantageous for programmers in the future. Most of them never realize it, and they will even fight the whole idea if you mention it. You'll eventually realize it by yourself, and it will be a very good thing for you, but starting early will put you on the right track quicker.
Study people and how to interact with them like you'd study a computer language. It is okay to be methodical, to take notes, to observe reactions and to make "social skills" a field of study. In fact, it is going to be the most interesting and exciting topic you've ever studied. There is a whole universe in each individual, and if you think coding is complex, you'll find humans to be many orders of magnitude more so.
I hate to tell you, but coding alone is not going to be enough to be successful. You'll get there eventually, but this advice will save you headaches you could easily avoid.
Remember that you could be the best programmer in the world, but in 2017 coding will be a mainstream job and people skills will be very useful for a successful career. There are going to be many talented developers, but not many will be great with people, so build that skill an use it as a competitive advantage. Also, remember that machines won't make you happy in life. People will.
Something else to keep in mind: Despite what you think now, you might not code full-time forever. I'll leave it at that, but just keep your mind open to the possibility. The future is full of twists and turns. Every path is exciting when you are ready, so take it when is the right time.
Here is a concept that I know for a fact that you don't understand yet: "Networking." No, I am not talking about modems and computers. I am talking about you connecting with people that are passionate about the same things you are excited about.
Software developers, software designers, and anyone who reads the same books and magazines you read and builds the same type of electronic gadgets you make. Find them, talk to them and brainstorm ideas; stop thinking that any time you spend not coding is time you could be coding. Coding is necessary for your career, but networking with people is a skill that you should start developing now. It will make your life easier.
Read books about many different topics. Coding and computer science books are good but, as mentioned before, don't forget to read about people too. Leadership, problem-solving, negotiation, management, design and teamwork are all excellent subjects to study.
Also, think of how software should be built when more than one person writes code for the same project. Your one-man-shop works for now, but it will not scale. Think about it: How would your work change if other 5 or 6 engineers were working with you? What about 50 of them?
The important thing is that you must think bigger than one-man projects. If you come up with a good solution to organize that kind of work, it might become important. In 2017 we are still fighting that battle and what we have is not great. We call it "Agile," and it is ok, but I think we can do better somehow.
I know that by this time you are playing with the idea of creating a program to allow people to write their random thoughts and publish them online. What did you call it? "My public diary," I think. I can't remember exactly, but it was a pretty lame name (sorry).
The web, in your time, is slow, lame, and hard to access, but in the future, it will become how we get information. Think of products ideas with the future in mind. Imagine a much better version of what exists today and design for it. Keep it flexible, however. Things will go in unexpected directions. (Just to give you a random example, I am allowed to tell you that Gopher is not going anywhere, so don't let that distract you.)
Despite the name, I have to tell you that you should work on that diary project. In the future, that idea is going to be called blogging, and it is going to be bigger than you can imagine. Get it done first, and get people to use it. Don't worry about making money with it yet; money will come.
Unfortunately, with the technology you have, it's going to be challenging to do it quickly. The good news is that you have the time and the energy. Writing a blogging platform in C is going to be a lot of work, but give it a shot and stop thinking that's a stupid idea. It isn't, you know it in your heart, just do it.
On a side note, you should see the abomination of a language that was used to create the most powerful blogging platform in the future. If you saw it, you'd probably laugh at first and feel ill shortly after. If you write it in C, you will do the world a favor. At some point, you'll be able to convert it to C++ which will be standardized in a few years in your timeline.
I know that you are also making some money freelancing for a few local businesses. That work is important, but not for the money. Use that experience to learn how to deal with people and customers. Learn to care for them. Solve their problems. It will help you make better products.
However, now that you have a lot of time on your hands, work mostly on your own ideas, think big and stop doubting yourself. There are kids not much older than you that are creating the foundations for the future of technology. Nobody knows them at the moment, and they don't look like much, and I was told don't smell very good, but the technology they are working on will revolutionize the way we live.
Keep track of technology trends, but don't feel like you have to master them all. It is impossible and unnecessary. The fundamentals of programming that you know now will be valid decades from now.
However, decades from now you will not have to build everything from scratch. Free libraries and frameworks will be very powerful, and you'll be able to work mostly on the stuff that makes your products unique. Yes, that means that you won't have to write string manipulation libraries, linked list or binary tree managers anymore. That said, to get a job you'll still need to know that stuff, so find a balance.
On the other hand, in the future, you'll need to understand how to work with those third-party libraries and frameworks. It will be a big part of what you do, and all of that will change your work significantly. I know it sounds strange to you, but get over it and get used to it.
Speaking of electronic gadgets, I have to mention this. Remember that black high-voltage transformer that your brother took from an old water heater? Be careful!
I know that playing with a 1.2" long, 8,000 V electric arc can be fun. It makes a beautiful noise and can turn electrodes red hot. You even like the odor of the ozone it produces, and that's a bit weird, but not a bad thing. It is cool, I understand, but for the love of everything that is holy, keep your hands away from it.
If you really want to mess with such a thing, at least put some padding against the armoire. It is surprising what a high voltage electric current can do to your muscles, and how far you can involuntarily jump as a result. You'll survive just fine, I am proof of it, but if you listen to me, at least you'll avoid breaking furniture in the process. Got it?
There will be a time where you'll have a family and kids. I can't tell you much more than this, but I can tell you that you should treasure that time. You have only one shot at it, and when it is gone, it doesn't come back.
Kids grow fast, and slowing down a little during that time won't hurt your career. Work hard when you are in the office, but when you go home, be home physically and mentally with them. There will be a million things competing for your attention, but your kids should come first.
At your age, you are fit and athletic, but that won't last forever. At some point, you'll be tempted to stop being active. Don't let that happen. It is easy and comfortable to stop moving, but everything that is easy and comfortable is probably not a good path.
Your mind will work best if it is attached to a well-trained body. Keep on lifting, keep on running, keep on practicing martial arts and keep on training. It will make your mind and body stronger.
99% of the stuff you worry about is pure fantasy and will never happen; the remaining 1% will occur in ways you can't predict at times that you don't expect. Regardless, worrying won't make you safer. It will just make you cranky.
You'll reach a point in life, at around 40, when you'll stop worrying naturally about a lot of silly things. However, I am hoping that you can stop worrying in your 20's. It will be a much more enjoyable way to spend those crucial years. Like your future kids' childhoods, your 20's won't come back. Sounds like a cliche, I know, but it is the truth.
You are in your early twenties now, and people don't always take you seriously; sometimes you feel too young. Listen to me; you are not too young for anything. Many great people become great in their 20's, and they didn't think of their age as a problem. However, other people might not see it that way, primarily if you act too young and immature.
In your professional life, the trick is to act like you are always in your mid 30's. I understand that you don't know how a successful mid 30's person acts. That's an easy problem to solve. Go out, observe and pay attention. Do they look like they are worried about their age? I don't think so. They are energetic, but not obnoxiously vigorous. They speak well and seem well read, but they do not preach from a pulpit as an older person might do; don't overshoot it!
When you are past your 40's, I am told that the trick will be the same: to act as much as possible as somebody in their mid 30's. I am not there yet, but for now, I believe it. So, get used to it. It will be handy, and the sooner you start paying attention to those dynamics, the easier it will be for you.
You'll meet all sorts of people in your professional life. Many of them will believe they are smarter and better than you. Don't worry about that; most of them aren't. Some are, and you should learn from them.
You'll find that if you follow your instincts, you'll go much further than if you follow other people's opinions. That said, you should seek mentors.; a different one for each phase of your career. Pick them wisely based on their achievements, not based on what they say. Do your research, but also follow your gut.