In the IT industry, someone can start work with a computer. If you do well, change yourself quickly, and maybe change the world in part. Generally speaking, the farther you are from the physical world, and the harder you are without constraints, the more important your imagination and creativity are. Farming depends on the sun. Coal mining depends on a minecart. If you think these are too slow, you can try the IT industry. If you feel mentally powerful and nowhere to release, try the IT industry. If you are a reel, please also try the IT industry — the cost is very low, as long as you have a networked computer, a room, a little living expenses, if the idea is right, you can make a small fortune.
The characteristic of the information age is that information is public. The difference between people is how they use information. I think there are countless wealth opportunities in the IT industry, just need to look at it from a different perspective, and then add, oh, some programming techniques.
If you want to learn programming techniques, I suggest that the first language is python and the operating system is Linux.
Don’t touch the C language at first, it is too close to the bottom of the computer, you need to know some hardware knowledge, and it has something that will make you feel frustrated. It is too close to the bottom, and it will be very slow to implement some functions. It may take more than a dozen lines to solve a line of python code. With so little time to think about these details, it is more important to get things done. If you want to learn C, please don’t use Tan Haoqiang’s book. It is outdated, and some ideas in it will mislead you.
Regarding Python, I recommend this Python Core Programming (2nd Edition) / Wesley J.Chun-book. Just do the exercises and examples from the beginning to the end. It is more important to do a question than to read a book. If you do not do a question, don’t read a book. It is useless and wastes time and life.
Then, immediately start doing what you want, using python. There will be many problems in this process, google it, and then solve it. If google can’t find it, please go to stackoverflow to ask questions, this is a very good development Q & A community. I’m not afraid of slowness, I’m afraid of standing, I’m afraid of stopping, I’m afraid of breaking. As long as you don’t stop standing and don’t achieve your goal, you will get everything you want in the process of doing it. This sentence is that experience is not theory, and you will know when you do it.
If you encounter problems with algorithms, check out “Introduction to Algorithms”, Introduction to Algorithms (3rd edition of the original book) / Thomas H. Cormen-Book, check it as a manual, and implement your own algorithm.
Python Has Many Advantages:
1. The Python community has a huge library that can almost solve most problems. There are even several different solutions for the same problem.
2. If you want to use Jvm, you can switch to Jython at no cost. They have no syntax differences. When you switch to JVM, you can theoretically call any JVM language and use their high-quality libraries.
3. Python can use c / c ++ / java and other language libraries in a mixed compilation, such as swig. This is why Python has always been called the glue language.
4. If you don’t use Python as the glue language, it will be fine. It can solve the package problem by itself. For example, 99% of the code of Dropbox is python, so is Douban.
Mainly so far, this kind of syntax is concise + huge open-source library + universal language that spans native development and Jvm + independent and competent + glue language, in addition to python, who can find out? Xiaoqiang, the programming language, is just that.
With the talents of most people, it’s not enough to complain about python’s forced space indentation and python’s gil problem. It is good to use existing functions.
There are two directions to train python to the finest. First, get the C language, because it is a system-level language. Second, get lisp, because it is the pinnacle of programming languages.
The most important book for the C language is The C Programming Language, and it’s great to get it done. As for C ++, I don’t think you need to learn it unless you are doing things with high-performance requirements, such as games or computer vision or graphics.
For Lisp, the most important book is the construction and interpretation of computer programs in the SICP book (2nd edition of the original book) / Alberson. SICP is more difficult to understand and it is not easy to get it done, but it will have an impact on your life. The biggest value of this book is that it is actually a condensed version of the programming language + compilation principle + computer architecture. Once you get it, you will form a complete framework in your heart. You can fill in this frame one by one in order, which is orderly and uncluttered. Then OnLispOn Lisp (Douban), it is the advanced expansion of Lisp’s core concept macros.
If you want to be an entrepreneur, then this technology stack is almost the same. The other elements are your vision, creativity, execution, firm will, leadership. No other things are needed, no Microsoft development tools, no other programming languages. If you just want to be an employee, it’s also good. These skills can make your life more comfortable, but why not try it? It would be more free, right?