Zero-based white Getting IT Development Guide

The following first introduce myself, I am a just graduated less than two years of a line of the city's programmer, undergraduate majoring in computer science and technology. From the start senior out of practice until now there fast coding experience for 2 years and a half, two and half years including internship, including worked for four companies, including an Internet company, two fund companies, a block chain company, more or less have some of their own understanding of the programmers in the industry, at least not initially even do not know what is the framework. Because I have been too busy saving the world in college, so basically there is no learned how professional aspects. I even knew that suffering had to find work placements are unwanted, I believe there are a lot of people and I was, like it (except Daniel ......). So want to own their own entry in this industry have learned and write down a number of skill points, on the one hand to yourself to be a summary, on the other hand also want to be able to provide some introductory guide some friends, especially those who want to prepare for beginning programmers industry and no clue of people. (PS: The following will be full of dry goods)

  1. First figure out what jobs in this industry can do:

We are all engaged in IT industry, programmers write code do? In fact, not the case. IT industry has many jobs to choose from, including but not limited to development, testing, operation and maintenance, product manager, design, algorithms, DBA ...... usually said programmers are basically refers to the research and development positions, the job requirements for technology is the highest, and add the same graduate looking for research work strength difference is not the case under the wages tend to be highest. However, these jobs have a lot of different internal distinction, I'll pick some of the following basic job description of each division of work and internal content.

  • R & D post

Gang of research and development work that white is responsible for writing debugging code to write, every day, stay up all night writing code refers to these people. This job can be roughly divided into front-end development and back-end development, of course, a full-stack (fullstack) development, operation and maintenance development, Devops ...

A product is generally divided into two front and rear end portions, such as a web page, and the front part is the part of the user interaction, the back end is the logic behind the organization of the entire Web page and data, they tend to be more back-end business reflects logic. (Some projects Some companies tend to do the front-end of a magnificent back-end was rotten, it is easier to fool investors' money)

Development front end: the front end of the development of many types and can be divided, such as by product type can be divided into sub-web front-end development, app development distal end, the distal end desktop development; according to different techniques can be divided into React development, development ...... Vue

Back-end development: the back-end can be divided according to the language in java, c ++ development, python development, node.js developers, Go ...... each type of development requires the development of language development vary, generally do best to know at least two back-end development language would be better. Most of large domestic companies with java more, but Python and Go became popular in recent years. Discusses the differences in the scope of each language is not Benpian discussion. Of course, the back-end development can be divided into ios development, Android development.

  • Test post:

I do not have a professional, then the textbook to discuss the role of these positions, and do the test is mainly to use some testing tools and frameworks for software developers to develop for testing, such as white-box black box testing and the like, that white is the R & D find bug, there are some company will provide test development this post. Code level testers do not ask, formerly with my direct leadership and I say you put the test as a fool can be programmed. Testing is basically measured Bug programmer, and then submit them to the programmer to change. There is a technology stack test article for personnel, posted for everyone to share:

Three years of software testing technology stack carding blog.csdn.net

  • Operation and maintenance

Divided operation and maintenance personnel and technical staff is not very evident in small companies, large companies might points very clear. Operation and maintenance work is generally done after the software testing is not responsible for the wrong product deployment into the production environment up to the user's actual use. There is a series of work including automated deployment, server performance, network throughput, server pressure monitoring, database performance, data management, network cable ah sometimes small companies, network ah, what server are responsible for operation and maintenance, and even then Some of these small companies work directly Tandao developed body. But as R & D personnel, operation and maintenance technology stack for research and development is also still a lot to be necessary, such as Docker, nginx, git, tomcat, k8s ...... operation and maintenance much to say, also share a technical operation and maintenance stack, provided to interested students on this direction:

Operation and maintenance - the technology stack - breeze Wood - blog Park www.cnblogs.com

 

Need to mention is that some people think that the development of test operation and maintenance in the three pillars of the IT industry, which is the main occupation of the three. Career and three cross-cutting, including the formation of different positions test development, operation and maintenance of the development, operation and maintenance testing, full stack development, job skills required for each tree is different. However, with the need for technical development and business, the skills required for IT professionals is also increasing, fb even require all developers are full stack development. Can only say that programmers and life-long learning.

Product Manager, algorithms, implementation and IT ...... strictly speaking already relatively far apart, but also computer professionals can do the work here briefly the following:

Product Manager: docking mainly responsible for product design and business needs, all without code base can be done, more suitable for girls. Are generally put to the programmer needs to arrange programmers work to do, not easy to offend arrange programmers, ha ha, pretty little sister - except the feeling is still relatively fast hardware product manager, imagine Zhang Xiaolong, micro-channel designer, ha ha.

Algorithms: Algorithm Engineer, I do not know much about this profession, but the demand for education is relatively high, many companies are required to design a doctorate in artificial intelligence algorithms to improve some of the class, such as computer image recognition, product recommendation algorithm Han, high wages.

Implementation: the implementation of this industry, I know some learning programming to learn some of the students do not enter this profession, it means aftermarket products, joined the company in the future to teach you some basic software uses a number of methods and installation methods, techniques requires very low low.

DBA: DBA is the main database management, database theory and some database software such as Oracle, Mysql, Sqlserver requirements are more basic need to become knowledge, but to know a scripting language such as python would be better.

2. have a general understanding of the technology stack before and after the end of the developer needed

First, clear your direction, you want to do is develop a back-end or front-end development or full stack development. I introduced the following in these types of development as a white needed technology stack and learn routes.

First some basic content as a master of researchers have suggested

  • Version control tools: git - history for collaborative management code and code
  • End-use
  • Basic data structures and algorithms
  • Use github
  • SSH
  • HTTP / HTTPS protocol and interfaces
  • Design Patterns
  • Encoding and encryption and decryption common principles
  • linux use
  • Json, XML and other structured data tools

web front-end development

Engaged in the development of front-end technology you need to know the following:

  • Web Fundamentals: HTML language, css, javascript, dom
  • js library: jquery
  • Package management tools: npm, yarn
  • css precompiled: Less, SASS
  • css framework: Bootstrap
  • Build tools: webpack
  • Front-end frame: React, Angular, Vue
  • ……

Back-end development

Engaged in the development of back-end technology is the following:

  • Select a language: C C ++ Java Python Node.js Go ......
  • Familiar with one kind of database use: Oracle, Mysql, Postgresql ......
  • Selecting a frame corresponding to the language: for example Django (python), Node.js (Express.js), Java (SSM)
  • Cache Tool: Redis
  • Interface Style: Restful
  • Communication protocols: HTTP / WebSocket
  • Message Queue: RabbitMQ
  • web server:Nginx,Apache、
  • Container: Docker
  • Operating System: process / thread, multi-process / multi-threaded, synchronous / asynchronous, concurrent Room / parallel-process communication, lock, memory management, I / O-related knowledge ......
  • The rest of the network, including but not limited to, compiler theory, database, micro-service architecture, distributed storage and other knowledge ......
Due to their limited experience, it more than just a list of some basic knowledge related to the development of the front and rear ends of need, which is the entry in bold black content industry must develop content, and the whole stack development requirement is at least these contents are necessary to understand and grasp. When engaged in the development process, we will have more content needs to learn and master.

3. I am a white, how can I not from fully developed to find a job?

I think a lot of newcomers want to entry in this industry are facing such a problem, even some colleges students, after all, the content of what schools teach and work are not the same. Here I were students from a non-professional and professional students two angles to explain the steps to get started:

I am not the profession:

If you are a non-technical education has never had any contact with computer knowledge of the people, for you, the computer industry will turn a little bit more difficult. But to believe, as long as the effort of deep, Tiechu also ground into a needle, what kind of work as long as stupid and have a studious mind, then soak in an industry where time long enough, there will always be harvested. Before learning to ensure that you have a basic command of English.

For non-Coban people, because that may not Coban student time and opportunity to learn a lot of basic knowledge, it is recommended to start language began to start, select a language and then try to follow instructional videos to make a project that allows just started to produce a sense of accomplishment, is conducive to learning for future expansion outward. If the proposed language easy to use language from the start with a simple point such as python, python recent years, relying on the development of artificial intelligence also wind and water, Python and also because of its rapid development of simple to use features welcomed by some companies. And the market has been python teaching materials into the system, easy for beginners to learn and master.

Here, we recommend you follow instructional videos Some colleges begin by learning, teaching videos do not necessarily going to spend tens of thousands of dollars learning organization, you can go to search related videos on top of a treasure, after a few dollars to get behind on download slowly, recommended learning paths like this (in Python for example):

  • Python is installed in the computer and basic knowledge of this language, understanding of the environment variable is how it goes
  • Basic understanding of Python language and syntax description of it, pip package management tools
  • Using python on the visual studio IDE pycharm or write helloworld program
  • Html, Css, js learning some basic grammar, learn to write some simple static page
  • Mysql database to learn to use, to understand database concepts, know the additions and deletions to change search database
  • Using the Django framework, try to follow instructional videos to make a shopping or blog sites like, in this process have a general understanding of the framework
  • Use git to make code management in the development process of the project, learn to use github
  • Learning programs in linux deployment uwsgi familiar with the tools, process management supervisord or systemctl, nginx server deployment

当完成了以上学习后,对于找到一份实习工作不是什么问题,当然,这些也只能算是一些简单的花拳绣腿罢了,如果想让面试官对你的技术和能力信服口服,尝试由一个点引出一个面,向周围更深的内容学习:

  • 系统的学习操作系统,了解进程/线程,多进程/多线程,同步/异步,并发/并行,进程间通信,锁,内存管理,I/O 相关知识
  • 系统的学习数据结构,了解队列(Queue),栈(Stack),数组(Array),数列(List),树(tree)等相关概念
  • 系统的学习计算机网络:了解网络OSI七层参考模型,了解HTTP、TCP、UDP、ftp等相关概念
  • 学习C语言这门高级语言中偏底层地语言可以帮助你了解其他语言的原理,并且了解向java面向对象和其他面向过程序言的区别
  • 理解一些常用语言的内存分配原理
  • 学会Docker的使用,学会使用一门web框架,比如React
  • 学习数据库的性能优化原理和方法
  • ……

技术的掌握往往是多多益善,只要你掌握的越多,就越能让面试官对你的技能有所肯定

我是本专业学生

如果你是计算机专业的学生,而且你发现在学校老师教的都是纯理论的东西,如果你还对这个行业不太了解,那么请认真看我想要说的话:

对于还在上学的学生来说,一定一定要记住,不要急着上来就搞个大新闻,觉得学校教的理论课没意思就不学了,或者认为那些东西难学就不学了,如果以后决定要走开发这条路,那么这些基础知识是必不可少的。学校中的专业课中《数据结构》《计算机操作系统》《计算机网络》《计算机体系结构》这几门课对你以后的发展很重要,这也是计算机专业考研要考的知识。一定要老老实实把这几门课学好,尤其是前三门。另外比较重要的一点是,在大学阶段,能早点出去实习就早点出去实习,因为往后你去百度等大厂实习,是一定要有项目的开发经验的。在平时学习专业课的闲下时间可以花时间去看看我对非专业人学习路线的介绍,可以学会试着去做出一个项目找份实习,这样学习与实践相结合,能够大大让你对这个行业有更深的认识。以后毕业了找工作,也更加会有主动权。这里再描述一些专业学生要学的路线:

  • 学习C语言等高级语言中偏底层一点的语言(一般院校都是以C开始入门)
  • 学习Java等高级语言和面向对象相关内容
  • 学习《操作系统》、《网络》、《数据结构》、《组成原理》、《汇编原理》、《数据库》等相关知识
  • 在以上的三个过程中,尽早地按照上面对非科班人员的路线同步学习,然后找份实习,在实习过程中可以认识一些大佬教你们一些开发领域相关知识,这对你以后是否从事开发工作和人生规划有很大帮助,也至少会拉不去实习不学习项目只是按照老师的规划学习的同学好几条街。

以上就是我对对这个行业还不太了解同时也想从事这个行业人的建议,以下我再免费分享一套Python的全套学习视频,想要的可以在评论区评论或者私信我,我把链接私信给你们。

另外再分享一套前端开发、后端开发和运维开发所需要的技术栈介绍,方便大家更明确未来的开发之路:

以上,如果觉得这篇文章对大家有帮助,请为我点赞,如果有问题,请大家积极为我指出,也欢迎有问题的同学私信我。

Guess you like

Origin www.cnblogs.com/yyystation/p/11836718.html