If it's an option, I would suggest a late stage startup (Series C or later).
Such companies give you the advantage of being less risky, and having enough structure to support folks that are new to the industry. They can also still have big challenges with impact and untapped growth which help you learn more in your career.
The downside is that you may see less financial upside compared to Google or Facebook and you will have less liquidity until the startup goes public or gets acquired by a public company.
You will need to do more homework and research to understand a late stage startup's potential, see how strong the team is, etc. If you go to a big company like Google, you can assume all those things are solid so it's less to be concerned about.
You will probably be one of dozens working on a given project. You may have specific duties ("Implement these features as they are designed") or you may have a broad mandate ("Make this thing better, figure out how.") but you will rarely have a feature or a product you can point to and say "this is my work, I made it". You will have contributed in a small (but sometimes critical) way to a big product used by millions or billions of people. You will be able to tell people, "I work at this place on that product" and most of the time they will know what you are talking about. Every big company has office politics; office politics are like the sports and games inside Final Fantasy games. In some companies they are just a fun diversion that you can get some neat loot out of, in other companies they are critical to the game and you can't win without playing them. You will be paid very well for this, and have exquisite benefits. Your eye doctor will comment on the comprehensiveness of your vision plan.
As a software engineer at a small, new startup, you will be responsible for everything, soup to nuts.
Depending on how early you start, you will be in complete control of the technical details of the entire software stack you work on, OS, language, source control, frameworks, everything. You might be told what to build by the founder/CTO/CEO, there might be a PM who designs the product for you to implement, or you might be responsible for designing the product given broad strokes and feedback. You will almost certainly be responsible for all of the development, testing and production support of the software you work on. If you do not test the code thoroughly, no one will. If you do not make a backup plan to backup company-critical data somewhere, it won't be backed up. If a server goes down at 3am, it will be you that gets called to fix it as quickly as possible. If you do your job poorly, you and everyone you know will be out of a job. When you tell people what you work on and where, they will pretend to understand or be interested, but you will be able to tell they don't really care. You could be paid anywhere between nothing and a good wage, and will probably have some sort of benefits. You will be given a random amount of stock or stock options, which will probably be worth nothing but could hypothetically be worth billions.
And I also have a question about the future of data analyst, do you think data analysis will become more important in the future? How to become an irreplaceable data analyst? What kind of companies don't you recommend to a data analyst?
A startup is all about risk and low return for employees. You get paid less, work more, and have less job security and benefits.
A big company will give you a noce salary, benefits, and better job security without the risk. It might also give you stock options that are worth something and can sold.
But there are cases where it has paid off to be a lowly startup employee. For example google itself.
Or you can be employee #100 in a fairly large startup like Dropbox, Zooplus, Booking.com.
There's easily around 50,000 of those roles open, including places like India and China.. So I'd say the odds are one in 120k, if you were born as a random human.
But if you are a software developer in the top 10% globally, you'd be one of 2 million. Let's assume only 25% of these jobs are tech.
That puts the odds around 1 in 160. If you're in a tech city, it's even higher. It's not great, but not terrible either.
My ratio of multimillionaire startup friends are a lot higher than 1/160, but I'm pretty sure it's survival bias, because the people who have succeeded are the ones most active in the community.
If you were employee #1000 in Facebook, you'd make $20M.
If you were employee #100 in Dropbox, you'd make $10M.
Source: https://genius.com/Sam-altman-lecture-1-how-to-start-a-start...
These numbers are all calculated back in 2014, and they're probably a lot higher now.
Also, personality. Some people don't enjoy job security and want a little adventure. For those who have to do it, they just have to do it. It's similar to the pioneers from colonist era Europe going off into strange countries.
Most exits would be less than Dropbox ($10B). Say it's 10% of it, a $1B exit, which is extremely respectable. But as employee 100, you get $1Million. That probably requires 4 years at the company to fully vest. Assuming you were paid $150k/year, your total compensation is $1.6Million (pre-tax). Assuming you spent the same time at FB, you can probably pull in an average of $300k per year, depending on which level you start at [0]. So your best alternate path has a return of $1.2million.
You beat the FB route if you are the first 100 employees, vest most or all of your shares, and your company exits at $1B and above. I'm not sure what chance of that happening is, but it's probably lower than 75%, so the expected value of the startup route as an employee is lower than $1.2Million. Of course, FB route doesn't have a 100% chance of happening either, but it's a lot closer to 100% than the startup route.
[0]: https://www.levels.fyi/ - I used the average of E4 average and E5 average.