Should I choose to learn Java, PHP, or Python?

Source: Internet
Author: User
Thank you for your suggestions. you have already started learning php and have watched the video from instructor Han Shunping. Now the main task is to learn. I will share my experience later. Thank you for your suggestions. you have already started learning php and have watched the video from instructor Han Shunping.
Now the main task is to learn. I will share my experience when I learn more. = Reply content: added to favorites 7 times, with only two likes. Can you give me a thumbs up when you pass?
=================== Split line of the original answer ============
After reading so many answers, I would like to say that you should not miss your children. Please believe in my answer. To increase your persuasiveness, you must highlight your experience.
I graduated from Tsinghua University with a master's degree. I have been writing Java for two years in Beijing, logging on to Python for three years in Hangzhou, and having in-depth customization of Python virtual machines. now I am engaged in the development of javascript virtual machines on arm. Although it is still not a good guy, I feel that my experience can be used as a reference for most beginners. The following is a formal answer.

Java is the first among the three. Really, Python is certainly good, but for a new beginner, the most important thing is to find a job first, isn't it? If you are looking for a job, Java is undoubtedly the easiest. For people across industries, the most difficult thing is the first step, that is, how to enter the industry. If you cannot even get in, and the first job is too late to start, you have to work hard to add data structures, design patterns, and algorithm design gaps?

Do not be frightened by statements like class backgrounds. Although I am from a division, I always feel that as long as you are willing to work hard, there is no insurmountable gap. The most important thing is not to be too ambitious or eager to seek success. There is a process of learning and accumulation. when you are a programmer in this industry, you will have a reward if you pay for it. Respect the inherent laws of learning, step by step, and one day you will become the one you want to be.

Next, let's talk about the specific plan.
1. understand the Java Runtime Environment. Find out what path and classpath do and how to compile and execute them in the command line. Know what happened after the buttons of IDE.
2. master the Java syntax. Clarify the basic concepts of packages, interfaces, and classes. Multi-State, overwrite, and dead-back I/O interfaces, including InputStream/OutputStream and Writer/Reader, network programming and GUI programming interfaces, and JDBC interfaces. In this step, the recommended book is Thinking in Java.
3. multi-threaded programming. Understand how ConcurrencyHashMap is implemented, how synchronized is going on, and why the Runnable interface is required.

When you get 80% in step 2 and step 3, you can consider looking for a job.

4. understand the design pattern at work. This book "Java and mode" is recommended. After reading the Decorator in it, you won't memorize the IO interface any more. When used, according to the naming rules of Adaptor and Decorator, you can push them temporarily.
5. dirty data structure. Understand the implementation mechanisms of the consumer list and ArrayList to understand the time complexity of each of their interfaces. There are other containers, Map, Set, and so on. Stacks, queues, binary trees, and graphs run through programming. if this step cannot be met, it can only be transferred to low-level programmers.
6. if possible, it is best to design some algorithms. Such as the idea of dynamic rules, greedy algorithms, and KMP. This step is not as important as the data structure. if you learn well, you do not have to be frustrated.

In this step, the gap between you and the cool programmers is not big. You can undertake development tasks independently at work.

7. advanced, now you can have your own thoughts. Java has been used in a variety of scenarios since its development. it is not too widely used as the most widely used programming language. After you lay the foundation, you can consider the direction in which to develop. For example, the server architecture, it is best to learn about JavaEE. JEE has always made people think that the threshold is too high. In fact, we can start with Spring to find out what the reflection, reverse control, and dependency injection are. (these nagging terms are actually designed to solve the defect that Java itself is not dynamic enough, I just want to remind you that these concepts are no big deal. Don't be scared by the guys who are forced by love ). We also need to clarify the message and ORM. Think about what problems they want to solve, and then guess how they are implemented. During the interview, I found that most of the excellent developers, even if they haven't thought about this problem before, can design Hibernate on the site. This shows that the framework of the East is no big deal. With the foundation, you can design it as well. The key is to use your brains. The above is an example of server-side development. for the client, you should think about how the event response mechanism works (I am not familiar with it, so I will not talk about it more ). You can also take a deeper look at the JVM source code, its implementation mechanism, and the garbage collection algorithm.

In this step, you can apply for Java Advanced Development. If you are lucky, an annual salary of 0.3 million is possible. The minimum guarantee is 0.2 million.

8. Architecture. In this step, you can even enter the classroom and enter the advanced development personnel. In this step, you need to think about more things, such as how to handle high concurrency, how to deal with distributed systems, and how to provide more robust data services. At this step, there is nothing to refer. It depends on your own understanding. So what can we achieve in the end is not my comment at this level.

The world of programming will always be open to all those who love programming. this is a world of freedom, equality, and sharing. I have always been so confident.

I hope you can become a successful programmer. Good luck.
Above. What I want to say is, Select a programming language.. Then, start your amazing programming journey.
When you start learning computer programming, the first obstacle you encounter is choosing a programming language. A common mistake for beginners is to ask experienced developers which programming language they should choose.

The truth is,This issue is not important at all..

When I officially started learning computer programming, my teacher used Pascal as the programming language.. This is the first time I 've been in touch with and played with ST BASIC in my childhood.It has been many years. I was 17 years old in 1998. If you are not familiar with Pascal, the following is a sample code:

program HelloWorld;  begin    WriteLn('Hello World')end.
Since you trust me in private, I will try to answer it bluntly.

You are too small to look at the codenon in your mouth. After four years of university game-based learning and three-month training courses, 2500 of students died before tax. I didn't learn the basics well. I only relied on the training courses of those months, and I couldn't do it for the coders. it was called the primary service.

You are not interested in a basic civil project, but want to devote yourself to your livelihood because it looks very profitable. it seems that it takes only a few days to make this decision, I also want to quickly find a 6000 post-tax job in half a year, which is the level of technical school recruitment of Huawei ZTE (2014 ). Are you competitive in Beijing?

If you do not want to do civil engineering, you will resign at home. You still have the opportunity to pick up a job. to buy a house, you want to go to work, and you are not short of money at all. You trust me to give you suggestions, and I'm so envious of your family conditions. how can I give you suggestions.

I suggest you say that the most important thing to do well in it is to be steadfast, not IQ. Of course, I didn't say it when you were in a group, but it wasn't because you played a game that could make your English and mathematics hard to learn. But are you not interested in it, or are you really wasting my time?

Finally dry goods: https://www.coursera.org/learn/python If you cannot learn this, don't bother. Now let's roll the dice. 2. Java. 3. 4. PHP. 5. 6. When Python is thrown, you can immediately start learning. don't ask how to learn the XX language. you'll go back and forth for five days and decide what to learn. language? I finished reading the basic Java syntax five days ago and began to gradually refresh the leetcode.
You need to know if you can get a job that can afford a house. at least three of C ++ Python Java PHP Ruby C # Objective-C should be involved. at least data structure should be learned. besides, you are not a science class. how does the operating system work? Do you want me to tell you that UCB students write data structures in Java in their freshman year and freshman year in Python? Gap? Learn Python! Learn Python! Learn Python!
I think I should be eligible to talk about this issue. In addition, I will not talk about the advantages and disadvantages of language, but about a person's ability and determination.
I have a bachelor's degree in business. I have never taken a programming class at school, and I have never studied mathematics or linear algebra. I feel that I have not learned this course well.
After 13 years of graduation, I entered the Internet company until the end of 15 years and started programming full-time. Less than half a year after entering the company, we have now established our own project to build a team.

Two years before graduation, they were all in the traditional industry and did not involve programming in their work. Since 13 years, I have learned Python myself. At the beginning, I was very interested in politics and crawled the database of leading cadres in China. The statistical analysis on the birth date and month of the leaders was conducted. (This website is strongly recommended by the PS crawler project. it is dedicated to hand village)
Later, I made several small projects and learned how to crawl data, parse webpages, and store them in databases. With these abilities and some statistics-related courses obtained by the university, I entered an Internet company for data mining and crawling.

A few months after I joined the company, I obviously felt different from some colleagues who use Java (not all ). I learned faster. I learned Python by myself. I know how to obtain information without being taught by a teacher. I am more active. some Java colleagues in the company are often the creatures that are in urgent need. they can only take one step, and sometimes they cannot push it. Before the demand came, I discovered the demand and met the demand that was not proposed in advance.

(I think if people are too passive, they will easily enter the comfort zone and cannot learn better. Take the initiative to learn faster .)

Later, because I met the needs that some bosses really valued, I asked me to set up a team to meet these larger requirements. Then I recruit people, and I still only recruit Python, not because I only use Python. in the past few months, Java has entered the door, and C # has a lot to do. But programmers who use Python are naturally different from programmers in mainstream Chinese languages.

Because Python is not popular in the Chinese market, training institutions are not keen to open this part of the class, and the language is not as popular as Java and C ++ in Chinese universities. All Python programmers are self-taught, and Python itself proves that you have the ability to solve problems independently and to grow fast. Most Java programmers cannot achieve the expected results quickly.

(I am not talking about all. some Java programmers may have better learning capabilities. However, the filtering cost is higher than that of Python)

So as a Python programmer, you now have a natural tag. you will learn, you know, and you can solve problems independently. This is what most companies need.

With these labels, why should we first learn the mainstream Chinese languages? (International Python is also a mainstream language)
If you say it is for better job search, I can tell you that Python is more competitive in some aspects.

I recently recruited a Python engineer. Basically, I want to check a resume. (Because there are too few) and other projects in our company look for Java engineers, colleagues said that the resume is not enough.

You may say that our company is a special case. In fact, it is difficult for Python engineers to become famous. Many companies have changed their projects to Java. Many Chinese python-based websites have started to recruit java engineers. why? -Java
Don't they want Python engineers? No, it's just too difficult for Mrs.

Finally, let's talk about how to get started with Python.
Crawler learning.
2 weeks to get started, 6 weeks to figure out the process of crawling, parsing, and entering the database, and add multiple projects. You are ready to jump.
Requirement?
Strong to the explosion.

Finally, I made an advertisement. in Shenzhen, I have been recruiting Python crawler engineers for a long time, and I am using big data projects related to credit investigation. No experience, no background. It is only considered as a project. If you are interested, please trust me. I will not criticize the topic's views on "programmers". after all, it is normal to walk across the mountains without knowing the depth of water.
I simply comment on the main problem of the subject. A little upside down. instead of selecting a language to work, you can select a job and then use the required language.
These three languages have no difficulty. Strictly speaking, they can be said to be incomparable. none of them can completely replace the other two. Select a name that sounds nice to you.
Now, let's get started. 25 is not small. when you reach the level of "working" in this industry, the general speed should be three years (after all, you are not good at mathematics and English, these two are important to programmers), working hard for two years. At that time, you were about to get married. when you got married, you first involved in the new industry. you should pay attention to it and choose carefully. Just select one and stick to it.
But it is usually hard to stick to, normal people usually have to fall into a" Have. I don't agree with some answers. as a person who has switched from business to cs, I don't think it is impossible to switch to cs. I have passed all my business, are you still not good at science and engineering? I think it is inappropriate for people to transfer their livelihood to cs. isn't it for people to go to college?

But I want to waste other aspects, such as your four-year college game, which is a waste of time. Can I make a bold guess that your graduation job is really bad because your major is not good? Isn't it because you have wasted four years in college? Although civil engineering may not be as dazzling as it, the civil engineering I know is not very poor after graduation, especially in China, a country in urgent need of mass construction, some of the civil and architectural students we know are not quite mixed... My dad was the chief engineer and now the chief supervisor. I told you that the company is short of talented young people. excellent companies are willing to train and naturally are willing to spend money to keep you. However, many of them are not reusable, and even some top schools are famous... I think it's about four years of college games... So your original major is actually very good...

Of course, if you make up your mind to engage in it, you need to understand what a programmer is. My community worker called me to go out for a holiday. I said I didn't want to write my homework and was regarded as cool by others, but cs was like this, if you work harder than others, you may not get better results than others, but you have to work harder...

One of my colleagues in the same department, his girlfriend used to think that he spent less time with her. later, she switched to cs, and he turned out to be too annoying... You now have 0 cs, so you have no idea what technology is difficult to learn. But you need to understand that it is very hard to learn cs. even if you cannot learn cs, it is not easy to learn some training courses to find a job...

When you get up in the morning and go to bed at night, in addition to preparing to write code for the meal, you can turn to the subject...

As for the specifics, I think php is not only a good start, but also a good advanced use of multithreading. it is suitable for web development and requires a large amount of web. Java seems to be easy to use, but after all, the compilation type, many advanced features cannot be said to have learned java, a single multi-thread may be able to make non-course difficult. Python is a good thing, but the demand is a little small, and many are not pure application development, such as statistics and artificial intelligence...

Sharing with you... Java, it is easier for you to understand the programming principles.
If you are from a class, I suggest starting with cpp.
In fact, the differences between languages are quite small. Especially from low to high, it can be done quickly by self-study.
If you have mastered the computer composition principle, operating system, data structure, and discrete mathematics.
Then, these languages are almost all used for random flip.
In actual work, you sometimes cannot find a professional. this is the case.
Will you use php (python \ c?
No.
I have some code here. Take a look at it first. Follow the change instructions.

And then change it. I personally think it is better to learn strong types of language Java, and develop a good coding habit. what can I learn soon?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.