I have been working for 3 years. I started self-taught C++ after graduation. I graduated from a second college with average level. Since I was very good at school, I worked overtime and studied C++ until I found a job. Now I am pretty good at C++. Familiar with it, I am becoming more and more familiar with Linux knowledge. It is not a big problem to work under Linux. I know a little about Go language and PHP.
But I have been looking for a job recently and haven’t been able to find one. I don’t know if there are too few companies recruiting people during the summer or because my skills are limited. I also have 3 years of work experience and I haven’t been able to find a job. This makes me wonder about the current development of the Internet. Under the circumstances, should I switch to other languages, such as java or php, go, spark, etc.,,,,,
Summary: Do you have to stick to c++? There are fewer and fewer Internet companies using c++, and the scope of c++ It’s getting narrower and narrower, the requirements of good companies are too high, and small startups can’t afford wages and are too picky. Is it still necessary to keep doing C++? I don’t know what will happen in the future...
Reply content:
When cars first entered the civilian market, many people who could drive could repair cars. Later, cars became popular and technology advanced. Now, let alone repairing cars, there are not many people who can drive manual transmissions and wire wires. Car repairing has also become a Professional and professional.
The same goes for programming technology. The era when companies like BAT would build their own infrastructure on a large scale has passed. The next generation of Internet giants, even if they are as large as Didi and Meituan, will only leave infrastructure engineers. Not a lot. In the future, the threshold for business system development will continue to decrease, and system languages such as C/C++ are better at infrastructure. There will be fewer and fewer positions in this direction, and only large enterprises can afford it. The job requirements for people It will get higher and higher, and the road to growth in this direction will be more difficult, but compared to those engaged in business system development, the economic returns of senior C/C++ engineers will still be higher.
When I was in college, I almost only learned C++. Later, I went to Microsoft during my internship. Only when I got there did I realize that C++ was not used in that group. What should I do? With the solid foundation that C++ brought me, I completed the task given by my boss to "learn the basics of C# and WCF within two weeks" on time and started working smoothly.
With the emergence of various "cloud platforms", they are becoming more and more modular. Some functions that took a lot of time to do before can now only be integrated with various third-party development modules.
Take my current project as an example: IM, video server, SMS server, etc., all integrate functions on various platforms. Just download an SDK and call the interface. There are few bugs and save time and effort.
This has resulted in a large number of positions being replaced by these cloud platforms, the threshold has become higher and higher, and jobs have become increasingly difficult to find.
During the Industrial Revolution, a large amount of manual work was replaced by high-efficiency machines. Now it is the turn of the IT industry.
Come on, big brother!
Still familiar?
Understand the rules for auto and template parameter resolution?
Iterator types of std::copy and std::find
Scenarios when iterators fail?
What are the iterator types of common standard library containers?
The time complexity of std::push_back? why is it like this?
What exactly do you mean by being able to work under Linux? (You can refer to the last chapter of Chen Shuo’s book. If you have used most of the commands he wrote above, you can say that there is no problem working under Linux)
C++ is now used in game engines and comparison of performance requirements It is often used in places such as high-end real-time trading systems. The threshold for C++ programmers is high and the learning cycle is long. Companies recruiting C++ programmers naturally have high requirements.
As for whether you should learn it or not, you make your own decision. Actually, I think after working for three years, you should not say what language you know, but what direction you are good at or familiar with.
The reason why I can't find a job is not because of C++, but because my skills are not good enough.
The overall number of C++ positions is definitely less than that of Java. But the poster also has a job now. I want a high-paying job, but my level is not good enough. So it is obvious that his level is not up to the high salary he requires. Some people say that with the same amount of effort, he can find a high-paying job by learning Java for 3 years. I have reservations.
But lz can try to develop into Java. It is true that the demand for C++ is narrower. As far as I know, it is mainly the high-performance backend, high-performance computing, and graphics of large companies.
In addition, lz has been working for 3 years and should have his own direction. Stop simply discussing C++ or Java. Spark is a library and not a language. Why should it be juxtaposed with go and java? You can use java in spark Write above. A senior engineer should be able to build a system in everything he does. Only then can he be worthy of your 3 years of work experience.
To add an attributive, it is increasingly difficult to find a job with low-level C++.
Basically it’s like this:
A: How is your C++ mastery?
B: Proficient.
A: Get out.
C: I think it’s okay
A: Okay, let’s see how to write this question, balabala
C: balabalabala…
A: 1. Well, not bad, stay
2. The level is not good, next one
Of course it’s necessary. Wait until I master Py.
It’s been three years and you’re still looking for a job based on language, your previous technology or business direction.
pattern.
During the time when I was looking for a job, I really doubted myself. I graduated in June and finally got an offer yesterday.
I am a junior college student, I studied Android in school, I have watched all series of Geek Academy videos, and I even bought a membership in 2014. After following @stormzhang’s self-study blog, um, I bought a ladder.
I have always been stupid. I followed the videos and tutorials and typed many demos. Then, when it was time to go out for internship in school, I couldn't find an internship job.
After being fished by training institutions in Chongqing 16 times, I lost the 17th time. Then I signed the agreement and went for training.
I agreed to train on Android, and then I started to understand C language from assembly, then socket network programming, and then C++.
C++ primer saw the container part, and then I started JAVA object-oriented again, um, "thinking in java", and then followed the IO part.
I had a falling out with the training class because I had to falsify my resume and project experience.
Later, I bought another month’s worth of videos from Geek Academy, and after reading the Kindle “Android Interview Guide” (it seems to be the title of the book)
I found that the demo was no longer enough for me. Because you can understand it after reading the tutorial once.
Start submitting your resume and interview.
I learned smarter this time. I used to write five items about project experience on my resume, but this time I only wrote two.
A company asked me to do picture synthesis before. I had never done this part before, so I didn’t go.
Once this week, I finally met a good company.
I didn’t ask about project experience. I only asked about the size of the C language structure, C++ virtual, Java exchange variables (this is not very ideal, I haven’t thought of it now.) and OOM.
Then I asked about the network protocol and found that the socket was blocked.
The offer was given that afternoon and I will start working next week.
I asked the boss who interviewed me. It was just simple client programming and it didn’t involve hardware (Bluetooth, WIFI, NFC), which I am relatively weak in.
It took a total of one month and five days. I interviewed 12 companies, 4 companies had technical interviews (carefully asked about the technology), and 1 company gave me interview questions (Android interview questions from 2 years ago).
The rest should be divided equally between HR and the boss.
By the way, let’s talk about the current situation in Chongqing. E-commerce is everywhere. If you have an idea, you want to start an e-commerce business, and then you need someone with several years of experience.
I secretly looked at the code of a person with three years of experience. I can only say that the writing of the class I looked at was not very good.
Some asked me to use PHP as the front desk after introducing the project. Some asked me to introduce myself and then asked me to wait for news. Some chatted well on the phone and online. They invited me for an interview and then told me that the person in charge was no longer available. There was no further notification. There is a company where I am still working as a remote technical support company (my boss asked me if he had a question, and I told him that he just wouldn’t let me go to work. He made an appointment to chat and treat me to dessert). I was also told that there was no basic salary and I would be paid for each component I made, which made me confused.
Fortunately, I didn’t give up.
I think the biggest benefit of learning C++ is that it allows me to understand Java better.
(Will you attract bad guys?)
It was really difficult to find a job during that time. I wanted to give up countless times and just find a salesperson or salesperson.
Because the repayment agreed with the training side will come next month. It will be 1,500 per month, and it will take one year to pay back.
I don’t regret going to the training, I just think that during the interview, I can’t follow the process written by others online?
Telephone interview, written test, first round, second round. .
I have answered so many written test questions and interview questions.
Not used.
To be honest, our training class is quite strong. After 4 months of zero-based training, I got 8K (local in Chongqing) and did very well.
Looking back, I am still too young. I once thought that even if I couldn't find a programming job, I would just do something else first.
Ask the question, even with four months of zero-based training in C++, you can find a job. What are you afraid of?
Some of those who came out of the training program wrote three or four years of work experience.
Routine: Look at other people’s resumes and then revise your own. Then just go to the interview! come on!
Only technologies with high development efficiency are popular, and C++ is fatal in this area. It is only suitable for developing high-quality software that has been polished for a long time. But in the Internet era, speed is the priority, so not many companies use it, and naturally it’s hard to find a job.
Learn popular technologies, there will be more job opportunities. I have C++ background and can learn quickly.