Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)
published in(发表于) 2016/4/27 6:25:19
Self-study: Secrets of why the United States half of non-trained programmers,

English

中文

Self-study: Secrets of why the United States half of the non-trained programmer-programmer, software engineer-IT information

United States the programmers Exchange site Stack Overflow in last year's survey of developers want to know code whether farmers had a degree in computer science from the University of. 26,086 programmers involved in the survey, nearly half of the respondents answer is, without a degree.

A large number of non-professional programmers for a number of reasons. On one hand, United States college tuition is rising. Private four-year university tuition on average close to $ 45,000 a year, which does not include the cost of living. The other hand, online courses and courses attract a lot of people. People who are interested in becoming programmers can learn by doing without having to "waste" several years to finish college.

On non-professional programmers, there are several suggestions for reference:

Behind closed doors is undesirable

Behind closed doors will bring a few aspects of the program:

No one gives you answers. When programming, you will face many questions, but I can't find one to your FAQ. Process of solving such problems usually require advanced programmers, or your own code to compare with others.

Software review. Large software companies will set up software review links, where colleagues review each other's code. Whether foreign or domestic, according to code review can be found 60% more errors and vulnerabilities. Even if you do need to get someone else to review your code.

Working together will help expand contacts with others, especially early in his career.

At present, many public spaces are open for small teams and individuals to apply for. It will be a good choice.

More books, especially the professional content

University of the important point of this training is the training of basic skills and methods, rather than allow you to participate in the project. If you had not gone to University, then these are likely to be missing. You probably know how to write code according to the architect's design document, but I don't know why the algorithm is like this. In the actual interview, I have found that there are many non-professional who can't even explain exactly what object-oriented programming. This should be the basis for C++.

Non-professional people need to read more books to supplement the basics, whether discrete mathematics, algorithms, or software testing the basic theory.

The other hand, if you wish through online courses or courses to learn, it's best to start with the basics, especially in the case of no programming experience.

Large enterprises new programmer in two ways. Is a top-down model. In this mode, applications or frameworks have been set up, expectations of programmers is that they directly use, make up for a lack of parts or to correct vulnerabilities. The other is bottom-up models. In large enterprises, the only new projects will usually do. When programmers can lay a Foundation, followed by a slow start from the top layer of the architecture, design, code design, detail design, and then to the actual programming.

If you're training, want to do, you should adopt a bottom-up approach. This will help you to understand many of the basic concepts. A large hand-contact code will be any the North.

To practice more, do more projects

For starters, many involved in the project can help to gain more experience and future career development. If you want to go it alone, then the project will be experienced on a resume, is a testament to abilities.

Individuals engaged in the project the best choice is to develop mobile applications. For large software projects, such as system software and enterprise applications, mobile application development is relatively simple, it is easy to produce results, and many users will provide feedback, the equivalent of your test for free. Mobile application development language, including Swift or Objective c (iOS platform), Java (Android platform), as well as c # and VB (Windows platforms) and so on. In addition, universal technology can also be considered such as Phonegap.

For individual programmers, GitHub is a good tool. There are many open source projects on GitHub can participate in, there are also many other programmers can help. You can also create your own software projects. All this is free of charge.

Career choice

Non-classically trained programmer looking for work may be subject to limitations, because big companies hiring qualifications is a threshold. Many well-known technology companies as criteria to filter applicants with a college degree. For example, in the recruitment of junior engineers, Google is.

In contrast, some entrepreneurial companies more interested in personal capacity, rather than qualifications. For what kind of programmer, what kind of programmer is qualified, they have their own standards. When looking for a job in a startup, you do not necessarily need to have the successful development of large-scale software, often as long as you can develop software used.

If you feel slightly weak, then you might consider the QA software company (quality engineering) position. QA work is usually statistical issues, identify trends, and recommendations on how to improve. It is also a programmer's basic ability. While many companies have a QA engineer recruitment threshold is lower than that of software engineers.

In short, University degree, or a degree in computing, are not essential for a programmer. But if these people want to be a programmer, you will learn and practice harder.


自学有术:揭秘为何美国一半程序员非科班出身 - 程序员,软件工程师 - IT资讯

美国的程序员交流网站Stack Overflow在去年的开发者调查中想要了解,码农们是否都有大学的计算机专业学位。有26086名程序员参与了这项调查,其中有近一半受访者的答案是,没有学位。

大量程序员非科班出身的原因有很多方面。一方面,美国大学的学费正日益高涨。私立四年制大学一年学费平均接近4.5万美元,其中还没有包括生活费。另一方面,网上课程和培训班吸引了很多人。有志于成为程序员的人士可以在做中学,而不必“浪费”几年时间去完成大学学业。

关于非科班出身的程序员,有几点建议可供参考:

闭门造车要不得

编程时的闭门造车会带来几方面问题:

没有人给你答疑。编程时你会面临许多疑问,但却无法找到人给你答疑解惑。解决这类问题的过程通常需要求助于高级程序员,或是将自己的代码与别人的去对比。

软件评审。大型软件公司都会设置软件评审环节,即让同事之间互相评审对方的代码。无论是国外还是国内,数据显示,代码评审能多发现60%的错误和漏洞。即使你自己干,也需要找人去评阅自己的代码。

与他人一同工作有助于拓展人脉,在职业生涯初期尤其如此。

目前,国内许多众创空间都在面向小团队乃至个人开放申请。这将会是不错的选择。

多读书,尤其是大学专业内容

大学培养人才的重要之处是训练基本功和思维方法,而不是让你实际参与工程项目。如果没有上过大学,那么这些方面很可能会有缺失。你可能知道如何根据架构师的设计文档去写代码,但却不知道算法为什么是这样。在实际面试中,笔者还曾发现,有许多非专业出身的人士甚至都不能准确解释,什么是面向对象的编程。而这本应是C++的基础。

非科班出身的人士需要通过多读书来补充基础知识,无论是离散数学、算法设计,还是软件测试的基本理论。

另一方面,如果你希望通过网上课程或培训班去学习,那么最好从基础开始学,尤其是在没有编程经验的情况下。

大企业培养新程序员的方式有两种。一种是自顶向下的模式。在这种模式中,应用或框架已经搭好,对程序员的期望是他们直接上手,补足欠缺的部分或是去改漏洞。另一种是自底向上的模式。在大企业中,通常只有新项目才会这样做。这时程序员可以先打基础,随后慢慢入手,从架构设计、代码的顶层设计、细节设计,再到实际编程。

如果你是非科班出身,希望自己干,那么应当采用自底向上的模式。这将帮你弄清许多基本概念。一上手就接触庞大的代码将会令人摸不着北。

多练习,多做项目

对新人来说,多参与项目能帮助积累更多经验,有利于未来的职业发展。而如果想要单干,那么所做的项目将成为简历上的主要经历,是对能力的证明。

个人从事项目最好的选择是开发移动应用。相对于大型软件项目,例如系统软件或企业级应用,移动应用的开发相对简单,很容易出成果,而也会有许多用户提供反馈,相当于免费帮你做测试。移动应用开发使用的语言包括Swift或Objective C(iOS平台)、Java(Android平台),以及C#和VB(Windows平台)等等。此外,Phonegap等通用型技术也可以考虑。

对个人程序员来说,GitHub是个好工具。GitHub上有许多开源项目可以参与,也有许多其他程序员可以提供帮助。你也可以自己创建软件项目。这一切都是免费的。

职业发展的选择

非科班出身程序员在找工作时可能会受到局限,因为大公司的招聘中学历是个门槛。许多知名科技公司用大学学历作为条件去过滤求职者。例如,谷歌在招聘初级工程师时就是这样。

相对来说,一些创业公司更看重个人能力,而非学历。对于需要什么样的程序员,什么样的程序员是够格的,它们有自己的标准。在创业公司里找工作时,你不一定需要有大型软件的成功开发经历,通常只要证明你能开发出用得起来的软件。

如果觉得自己的能力稍弱,那么还可以考虑软件公司中的QA(质量工程师)职位。QA的工作通常是统计问题,找出趋势,以及建议如何改进。这也是一项程序员的基础能力。而许多公司对QA工程师的招聘门槛要低于软件工程师。

简而言之,大学学位,或者说计算机专业的学位,并不是成为程序员的必要条件。但如果这类人群希望成为程序员,那么将要在学习和实践方面付出更多的努力。






If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759