0 base Should you choose to learn Java, PHP, or Python?

Source: Internet
Author: User
Tags learn php
Thank you predecessors of the proposal, has begun to learn PHP, has seen Hanshunping teacher's video.
Now the main task is to learn, and so I learn and then to share experience =. =

Reply content:

Was collected 7 times, only two likes. Pass by brothers, can you please a praise AH?
=============== the original answer to the split line ==========
Read so many answers, I want to say, you do not fraught. Please believe my answer. In order to increase their persuasion, it is necessary to light up their own experience.
Master of Tsinghua University, wrote in Beijing for two years Java, in Hangzhou wrote three years python, in-depth customization of Python virtual machine, now engaged in the development of JavaScript virtual machine on arm. Although I am still not a bull man, I feel that my experience can provide a reference for most of the new entry practitioners. The following is a formal answer.

The first of these is java. True, Python is certainly good, but for a newly-started person, the most important thing is to find a job first, right? And looking for a job, Java is undoubtedly the easiest. For people across the industry, the hardest part is actually the first step, and that is how to get into the business. If you can't get in, the first job is too late to start, so work hard, make up the data structure, design patterns, algorithm design These gaps can not be said, right?

Don't be frightened by what trained or something is saying. Although I am a trained, but I always feel, as long as you work hard, there is no insurmountable gap, the most important thing is not to be ambitious, and not to be anxious. Learning and accumulation is a process, in the programmer's profession, you pay a penny, there will be a reward. Respect the inherent law of learning, and gradually, one day, you will become the person you want to be.

Next, I'll talk about the specific plan.
1. Understand the Java operating environment. Figure out what path and classpath are, how to compile and execute on the command line. Know what's really going on behind the various buttons in the IDE.
2. Master the syntax of Java. Figure out the basic concepts of packages, interfaces, classes, and inheritance. Mastering polymorphic, overwrite, dead-back IO interfaces, including Inputstream/outputstream and Writer/reader, dead-back network programming and GUI programming interfaces, dead back JDBC interface. This step, the recommended book is "Thinking in Java".
3. Mastering multi-threaded programming. Figure out how concurrencyhashmap is realized, figuring out what synchronized is going on and figuring out why there's a runnable interface.

When you get to 80% in the second and third steps, you can consider looking for a job.

4. Experience the design pattern at work. Recommended "Java and Patterns" book. After reading the inside of the Decorator,io interface you will never go to rote. When used, according to the adaptor and decorator naming rules, their own temporary push can be pushed out.
5. The data structure of the evil complement. Figure out the implementation mechanism of LinkedList and ArrayList to understand the time complexity of each of their interfaces. There are also other containers, map, set, all the same. Stack, queue, binary tree, graph throughout programming always, if you do not pass this step, it is only in the low-level programmer to spin.
6. If possible, it is best to explore some algorithmic designs. For example, the idea of dynamic rules, greedy algorithms, such as KMP such a wonderful algorithm. This step does not have the data structure is so important, the good study certainly is good, the study is not also not too frustrated.

At this point, there is little difference between you and the programmer. Can undertake the development task independently in the work.

7. Advanced, this time you can have their own thinking. Java is now being used in a variety of scenarios, and it is not too much to say that it is the most widely used programming language. After you have played a good foundation, you can consider which direction you should develop. For example, the server-side architecture, it is best to learn Java EE. Jee has always been a very high threshold for people to feel. This can actually start with spring, to figure out the reflection, control inversion, the dependence of the injection is what ghost (these words are actually to solve the Java itself is not enough dynamic this flaw appeared, here does not unfold, I just want to remind that these concepts are not a big deal of things, Don't be intimidated by the guy who's in love with the outfit. And the news, this thing, and the ORM thing, are going to get it all figured out. Think about what they are going to solve, and guess how they got there. When I interviewed, I found out that most of the best developers, even if they hadn't thought about it before, let him design hibernate on the spot. This shows that these framing of the east are no big deal. With the basics, you can also design them. The key is to think. The above is a service-side development example, then for the client, you have to think about how the incident response mechanism works (I am not familiar with, I will not say more). You can also delve into the source code of the JVM, and its implementation mechanism to understand the garbage collection algorithm and so on.

In this step, you can apply for advanced Java development. If you are lucky, a salary of 300,000 is possible. A minimum of 200,000 is guaranteed.

8. Architecture. At this point, you are a presenting illegal weapons, really stepping into the senior developer. This step, you need to think about more things, such as how to deal with high concurrency, how to deal with distributed systems, how to provide more robust data services. In this step, there is nothing to refer to, ready-made things. All by their own understanding. That finally can reach what height, it is not my this level can be reviewed.

The world of programming is always open to all those who love programming, and it is a free, equal, shared world that I have always believed in.

I hope you can become a successful programmer. Good
Above. What I'm trying to say is, Choose a programming language, any language。 Then, get started on your magical programming journey.
When you start to learn computer programming, the first hurdle is to pick a programming language. One of the mistakes that beginners often make is to ask experienced developers what programming language they should choose.

The truth is that the problem is not important at all .

When I formally began to learn computer programming, the teacher used the programming languagePascal. It's been a long time since I first touched and toyed with ST BASIC in my childhood. It was in 1998, I was 17 years old. If you happen to be unfamiliar with Pascal, here's a code example:

program HelloWorld;  begin    WriteLn('Hello World')end.
Since you have a private messages to me, then I have to do a reply, say straight point.

You underestimate the size of the farm you mouth. Is two trained, after four years of university game study, finally add three months training course, 2500 tax before the death. Foundation did not learn, only by those months of training courses, yards farmers also can not, that called corvee.

You a 0 basic civil origin, not because of interest but because it seems to be very profitable to join in for the sake of living, and this decision seems to take only a few days, but also want to crash in six months to find 6000 after-tax work, this is the company ZTE this level of technical school recruitment levels (2014). In Beijing, do you have any competitiveness?

Do not want to do civil work to resign at home, you still have to pick a job, in order to buy a house to go to work, belongs to the state of not lack of money at all. You have a private messages I let me give you advice, see your family conditions I envy the dead, okay, I have the mood to give you advice.

To persuade you, well it, the most important thing is to be practical, not IQ. Of course, your intellectual tension pile as I did not say, but visual inspection you are not because playing a game can make you English math is not good. And you, one did not learn it interest, two not steadfast character, really is not wasting my time?

Final dry: https://www. Coursera.org/learn/pyth on If you don't learn it, don't bother. Now, roll the dice. 1 2 on Java 3 4 on PHP 5 6 on what Python throws, start learning and don't ask how to learn XX language you come and go back and forth 5 days you know what language you decide to learn? I read the basic Java Grammar 5 days ago and began to brush Leetcode slowly.
You need to know if you can get a job that could afford a house. 3 Doors in C + + Python Java PHP Ruby C # objective-c at least the data structure well, besides, you're not a science guy. Compiler principle OS still not necessarily dare to trained have time in this tangled? Do you want me to tell you that UCB's students have a big python in their freshman class and write data structures in Java? Gap? Learn python! Learn python! Learn python!
I think I should be qualified to talk about the problem. And I don't talk about the pros and cons of language, but about the ability and determination of a person.
I am a business student, in the school did not have a lesson on programming, mathematics to linear algebra did not learn, and I feel that the door is not good.
After graduating from 13, he officially entered the internet company until the end of 15, and began programming full-time. Enter the company half a year, and now start their own project, responsible for building the team.

2 years before graduation, are in the traditional industry, the work does not involve any programming things. From 13 onwards, I learned Python myself. At first, he was very interested in politics and climbed down the database of Chinese leading cadres. All the information, did a statistical analysis of the leader's birth date. (PS Crawler Project strongly recommend this site, without any restrictions, novice village dedicated)
Then I did a few small projects, know how to crawl data, parse the Web page, and save to the database. With these abilities and a few statistics-related courses at the university, I entered an internet company to do data mining and crawler-related work.

After entering the company for a few months, it was obvious that I was different (not all) from some of my colleagues in Java. I learned faster, Python I learned it by myself, I know how to get information without the teacher's guidance, to achieve the purpose. I do more initiative, the company some Java colleagues, is often driven by the demand of the living creatures, push a step to take a step, and sometimes even push. And I before the need to come, I went to find the demand, I go ahead to meet the needs of not being mentioned.

(I think if people are too passive, it is easy to enter the comfort zone, unable to learn better.) Take the initiative to learn faster. )

Later, because I met the needs that some bosses value, let me build a team to meet this larger demand. Then I recruit, so also only recruit python, not because I only python, these few months inside Java into the door, C # also will be a lot. Instead, Python programmers are inherently different from programmers in the mainstream languages of the country.

Python is not booming in the Chinese market, so the training institutions are not keen to open this part of the class, and the language in the Chinese university is not as popular as java,c++. All Python programmers are self-taught, and Python itself proves that you have the ability to solve problems independently and have the ability to grow quickly. People who come in can quickly achieve the desired results, which most Java programmers do not.

(I'm not saying that all, part of Java programmers, may be more capable of learning.) But the screening cost is higher than Python)

So you as a Python programmer, now have a natural label, you will learn, you understand learning, you can solve the problem independently. That's what most companies need.

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

I recently recruited a Python engineer, basically a resume I want to look at. (because too few) and our company's other projects to find the Java engineers, colleagues said that the resume can not see the end.

You might say that our company is a special case, in fact Python engineers are notoriously difficult to recruit. Many companies have changed the project to Java. What is the reason why many Python-based Web sites in China are starting to recruit Java engineers? -Java
Don't they want to be a python engineer? No, it's just that the wife and wife are too hard to recruit.

Last but not least, Python's fastest-to-start career guide.
Learn to crawl.
2 weeks to get started, 6 weeks to figure out how to crawl, parse, enter the database process, add multiple projects. You're ready to jump.
Demand?
Exuberant to explode.

Finally, a advertising, Shenzhen area, long-term recruitment of Python crawler engineers, credit related big data projects. Do not look at experience, do not look at the background. It's only considered a project. Please contact me if you are interested. Do not criticize the master of the "programmer" view, after all, interlacing as Foster, do not know the water depth is normal.
I simply comment on the main problem of the Lord. A little before putting the cart before the horse, instead of choosing the language to work, choose to work, and then use the language.
There is no difficulty in these three languages, and strictly speaking there is no comparability, and none of them can completely replace the other two. The main choice is you think the name is nice.
Then hurriedly start, 25 is not small, and so you reach the industry "can work" elementary level, the ordinary speed should be 3 years (after all, you math and English is not good, both of the programmers are very important), and strive for a little 2 years. When I was 98, I was getting married, and when I got married, I was involved in a new industry, you weigh it and choose carefully. It would be nice to pick one of them.
But generally do not insist, normal people must fall into a " had to"In the case of the situation can persist in the end. Some of the answers to the landlord threw cold water, I do not agree, as a business branch to CS, I do not think the CS is what is impossible, I have a commercial section has passed, you science and engineering still not? Think that in order to make a living to CS inappropriate, do not people go to college to make a living?

But I would like to spill other aspects, such as your four years of college games wasting time. Can I venture to speculate that you are not a good graduate in the field of civil engineering? Isn't it because you wasted four years of college? Although civil engineering may not be so dazzling, but I know the civil engineering graduation is not bad Ah, especially in China, the need for a lot of construction of the country, we know some of the civil and architectural class of students are not mixed poor ah ... My father former chief engineer, now total supervision, the old to tell me the company is actually very short of excellent successor young people, excellent companies willing to cultivate nature also willing to spend money to keep you. But a lot of subsequent is really unbearable reuse, and even some top schools are ... A look is college 4 years game come over ... So your original professional is actually very good ...

Of course, if you make up your mind to do it, you need to understand what kind of state a programmer is. My social worker's classmate holiday called out to play, I said do not want to write homework to be regarded as high cold, but CS is such ah, especially I turn over, more than others to work harder but not necessarily better than others, but only more efforts ...

I was a classmate of the department, before his girlfriend suspected that he accompanied her less time, then she also turned CS, the results become too annoying him ... You are now CS based on 0 so to tell you what technology is difficult to learn you also have no concept. But you have to understand, learn CS very hard, even if not up to the point of learning CS, learn some training courses technology to find work that is not easy ...

Do well in the morning to sleep at night, in addition to eating La Xiang all write code preparation, then the master can turn ...

As to the specific words, I think PHP bar, not only good introduction, not multithreaded this advanced application, and HTML/CSS/JS, such as mixed, suitable for web development, and the web is in great demand. Java looks good to get started, but after all, the compiler, a lot of advanced features do not know how to learn Java, light a multi-threaded may be able to put the non-academic baffled. Python is a good thing, but the demand is a bit small, and many are not pure application development, such as statistics, artificial intelligence ...

With June Mutual encouragement ... Java, it's easier for you to understand the principles of programming.
If trained, I would suggest that we should start with CPP.
Actually, the differences between languages are quite small. Especially from low to high, general self-study can be done quickly.
If mastered the principle of computer composition, operating system, data structure, discrete mathematics.
So these languages are almost literally flipped over and used.
The actual work sometimes cannot catch the professional person, the scene is like this.
Do you have PHP (python\c#)?
No.
Then I have a piece of code here, you first take a look. According to the change.

Then change it and change it. Personal feel or learn strong type language Java is better, develop good coding habits, then learn anything fast
  • Related Article

    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.