Starting your IT career: Freelance vs Startup vs Corporate life

It doesn’t matter if you are just a college freshman or past your 30s, you definitely thought at one time in your life to pursue an IT career, even if it’s just for the money. Word of advice, if money is your sole purpose you’re better off with your current miserable job, because an unfulfilling IT career will be even miserable.
Now that we got that out of the way, you can continue your lecture. I have to point out that statements that will be made along this article are not necessarily true in all situations but they do apply in most cases.
Freelancing
It’s a no brainer that the easiest way to start is on your own. Most IT jobs could be done as a freelancer(software developer, database admin, graphic designer, dev ops and so on), thus if you have the time, the determination and the brain to make the necessary research and put it all together, you can make a quick buck pretty easy.
The progress is solely up to you on how dedicated you are to yourself, but it will mostly be on a technical level. Freelancers are usually just “doers”, they usually never get to manage teams or projects. But if you can keep up with the trends, participate to IT conferences and webminars, you can make a good living from the comfort of your own home or even while traveling.
Startup
Truth be told, chances are slim to get hired if you have no experience so you will still have to go through the freelancer stage for a couple of months if you even think passing the first interview. Don’t take my word for it, but I think startups are the best environments to begin your IT career. First of all they usually work with the newest and trending technologies, teams are small and overall mood is up, you will learn to respect good workflows and best practices(improving the overall quality of your work) and it’s easier to make a difference on your project or even inside the company.
As progress goes, it will be not only faster than freelancing but also more fulfilling because you and your colleagues will grow together. As a freelanceryou will only improve your technical skills, but as an employee, soft skills will improve as well(negotiation, mentoring, leadership) and as time passes you will be responsible for more and more important tasks in your project: from developing, to coaching, to leading and consulting.
Corporate
If you’re in your 20s, it’s better to get an internship job in a corporation. Although you should have some basic IT knowledge to be taken in consideration, it’s much easier than getting a junior level job. The upside is that big companies will invest a lot of time and people in your training but as time passes you also realize the downside: visibility.
It’s pretty hard to stand out of the crowd when we are talking of 1000 employees. Large companies usually get caught up in a lot of bureaucracy and, in my opinion, don’t have a good measurement on employee performance, so it would take a long time to get taken in consideration for a real promotion. Some companies have a policy of at least 2 years to get from a Junior to a Mid position and, although it may seem pertinent, it’s not always the case. A capable individual with the right training and projects can jump from Junior to Team Leader in 2 years. I’ve heard of people that resigned and got hired back at the same company after 3 months on a higher role, because company policy would not allow a role progression earlier than 4 years.
Conclusion
Personally I’ve been through all of the above situations and at the time I’m writing this article I work in a corporation. I recommend you start on your own and do some small freelance projects first, after that find a startup with an interesting project and get hired on a Junior role and work your way up from there. It will come a time that you will move up to a big company, but word of advice, although it may seem cool to work for IBM, HP, Oracle, Adobe, you will learn that passionate IT professionals don’t usually work at this kind of companies, they start their own.