想要学习却又无从下手,新手程序员如何自我提升?

低调的牛肉


大家好,我是有梦想的年轻ren

作为一个工作5年Java开发工程师,我讲述自己看法。

1.1-2年能干活就行,3-4年就是性能,源码,在网上就是架构了。

2.学习可以从博客园,知乎,CSDN等专栏看别人的总结,都是别人的经验,直接汲取对自己提升特别快。

3.可以多进一些技术交流群,看别的公司使用什么技术,不至于自己落后。必要的时候多面试。

4.网上也有很多视频资料,需要的话可以私信我,发给你。

5.还是要自律吧。

温馨提示:程序员比较辛苦。

谢谢,希望我的回答对大家有帮助。


有梦想的年轻ren


先推荐几本程序猿的书吧

《c语言从研发到脱发》

《C++从入门到放弃》

《Java从跨平台到跨行业》

《Ios开发从入门到下架》

《Android开发大全——从开始到转行》

《PHP由初学至搬砖》

《Mysql从删库到跑路》

《服务器运维管理从网络异常到硬盘全红》

《服务器运维管理从网维到网管》

《Debug455个经典案例,让电脑开机蓝屏》

《零基础学c语言,学完负基础》

《Css从绘制框架到改行画画》

看过了这些如果你觉得程序猿太难,那再来试试信息安全吧!

程序猿与渗透测试攻城狮,本来也有相似相通之处,这里你也可以参考信息安全行业的渗透测试工程师的一些学习要点!

了解以后,或许对你来说,做信息安全也是一条不错的道路!

《黑客攻防:从入门到入 狱》

一、常见漏洞

1.SQL注入

SQL注入原理、联合注入、注入类型、别名提升权限、读取文件、html锚点、Mysql布尔注入、延时注入、

别名讲解、MYSQL-BUG注入、MYSQL函数报错、修复SQL注入、判断网站是否存在注入、

宽字节注入、多语句注入、Values注入、Delete注入、UPdate型注入、注入常用函数、防火墙、其它数据库注入。

2.XSS漏洞

XSS原理、ajax、储存型XSS、反射型XSS、dom-xss、X-XSS-Protection、CRLF+XSS、XSS修复、闭合XSS

3.Csrf-XSS蠕虫-SSrf-XXE 了解CSRF-CSRF攻击、Csrf漏洞修复、XSS蠕虫、XXE原理、XXE修复

4.文件上传 空字节的理解、上传流程、JS验证、截断上传、黑名单验证上传、二次上传、上传分析、MiMe类型绕过、解析漏洞、双文件上传、上传已知漏洞

5.Webshell PHP、asp、aspx一句话、大马、小马、后门、查杀

6.Mysql注入进阶-DNS查询 DNS的理解、Sql注入的利用、搭建测试环境、其它数据库注入、修复

7.读取及代码执行命令 文件包包含修复、文件读取、利用文件包含漏洞拿到权限、理解序列化、反序列化漏洞、Exp-Poc-Payload讲解

8.逻辑漏洞 逻辑漏洞原理、挖掘密码重置漏洞、验证码漏洞、未授权漏洞、越权

9.信息泄露 了解什么是信息泄露、Google用法、网站路径、判断网站CMS、Robots.txt讲解、各种找信息、预付信息泄露总结

二、工具介绍

Burp、Msf、APPScan、WVS、Sqlmap、Nmap、Nessus、Hydra…

熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。

1.了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;

2.下载无后门版的这些软件进行安装;

3.学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;

三、中间人攻击与抓包

Arp原理、Wireshark、Bettercap介绍、嗅探、脚本、DNS劫持与预防、cain+NetFuke使用

四、正反向代理与端口转发

原理讲解、正反向代理搭建、windows_nc反弹、inux_nc安装与反弹。LCX

五、权限提升

服务器安全配置、Windows、Linux提权讲解

六、靶机实战

网站内置靶机题目,是按照闯关模式的,当然,您可以从文章中学习到技巧以及方法,来到我们的靶机上做渗透测试,了解漏洞危害,我们会根据文章,在文章底部设置靶机入口,您可直接联系!

熟悉Windows/Kali Linux

学习Windows/Kali Linux基本命令、常用工具;

1.熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;

2.熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;

3.熟悉Kali Linux系统下的常用工具,可以参考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;

4.熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》

服务器安全配置

学习服务器环境配置,并能通过思考发现配置存在的安全问题。

1.Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置;

2.Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置;

3.远程系统加固,限制用户名和口令登陆,通过iptables限制端口;

4.配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity;

5.通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。

脚本编程学习

选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习

1.搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推Sublime,一些Sublime的技巧:SecWiki-Sublime;

2.Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;

3.用Python编写漏洞的exp,然后写一个简单的网络爬虫,可参见SecWiki-爬虫、视频;

4.PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;

5.熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);

6.了解Bootstrap的布局或者CSS,可以参考:SecWiki-Bootstrap;

源码审计与漏洞分析

能独立分析脚本源码程序并发现安全问题。

1.熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;

2.从Wooyun漏洞库上寻找开源程序的漏洞进行分析并试着自己分析;

3.了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;

4.研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。

安全体系设计与开发

能建立自己的安全体系,并能提出一些安全建议或者系统架构。

1.开发一些实用的安全小工具并开源,体现个人实力;

2.建立自己的安全体系,对公司安全有自己的一些认识和见解;

3.提出或者加入大型安全系统的架构或者开发。


头号黑客


对于新入职场的程序员而言,要提升自己的编程能力,我从一个老程序员的角度,给你以下几个方面的建议:

1.养成良好的编程习惯。

万丈高楼平地起,基本功很重要。新手一定要耐住性子,从注释、缩进、变量命名这些最最基础的做起,培养自己良好的编程习惯。

2.熟悉软件工程的思想

软件开发是一个团队协作的工作,熟悉团队开发的一些工具和思想,对于你未来在工作中与同事合作,会有很大的帮助。

3.提高自己的理论水平

软件开发是用计算机语言表达自己思想的一个过程。软件中常用的:分治、递归等基本思想要了解。设计模式的设计原则也要熟记。总之,多看书提升自己的理论水平。

4.广泛涉猎

例如:对大数据、云计算、物联网、AI、区块链等前卫到技术原理要懂。

5.多学习业务知识

这一点很重要,业务是技术的前提。这也是程序员进阶架构师必须掌握的能力。对常见的电商系统、ERP系统、CRM系统、客服系统等有哪些大的业务模块,模块之间的关系是什么,掌握的越多越好。

6.锻炼自己写文档的能力

软件开发前面的阶段是设计阶段,重视自己的文档能力,对于复杂的业务问题转化为计算机问题,是至关重要的。

最后,祝你在编程的道路上,一帆风顺。





云峰互联网


程序员如何正确的自我提升

首先啊兄弟们,我只是分享一下我的一些学习方法,你可能有自己更好的方法,我只说适合于我的,并且确实有效果的

在开始这个话题之前,可能有些兄弟觉得自我提升嘛.学习,使劲学,这不就是自我提升么

你说的对,学习就是自我提升,但是如何正确的学习,会直接影响你提升的速度,学习的扎实度等

前言

在接触计算机有一段时间之后,接触到越来越多的新知识新概念,

我就像刘姥姥进大观园,什么都想学,但是总感觉力不从心,学习效率低下,

不管是复杂的算法还是简单的案例demo,我都感觉学的费劲

刚开始我觉得是不是我这脑子不好使,学啥都费劲,后面慢慢的意识到可能是我的学习方法有一些问题

最开始的改变

我开始反思,我当时的学习是如何进行的,我举个栗子

可能上一秒我在看设计模式,看到其中的某一个未知的概念,我就跑去看这个概念,又从这个概念中看到另一个未知的东西.又跑去看这个…周而复始,导致一个晚上的时候,啥都没看明白

反思之后,我开始定制有规划的学习目标

比如 学习设计模式,看到不懂的概念先记录到便签中,把设计模式研究明白再去看当时不懂的概念,其实这个时候你只需简单了解下,结合你之前学习的知识点,一点即通

序章

光有规划的学习还是远远不够的

你需要定制自身的知识体系

比如你是一位java开发工程师,那么你的知识体系要先从java开始

当java的体系到达一定程度后,

你想转型,大数据or高并发

此时你仍然需要定制你的知识体系

如果你要转型大数据,那么你需要了解大数据知识体系,并且结合有规划的学习目标进行

而不是今天看看spark明天看看python

序章二

学习适量的深度

目标规划,知识体系构建你都有了,那在学习的过程中也是会遇到很多问题的

比如今天看某个知识点,完全看懵了,或者一知半解

那这种情况其实很好解释

因为你学习的这个新知识完全超出了你的认知范围

这就是从低往高爬经常会遇到的问题

那其实我的建议是对于完全懵逼或者一知半解的这种知识点到即可

因为你再研究下去你依然不懂,不如先学习其他的

等到你的知识体系到达某一个高度之后,你再回头看你当时的那个问题,就会恍然大悟

当然有人会说你这个逻辑有问题啊,你都不会深层次的东西,怎么构造高度的知识体系啊

高层次的知识都是把底层的问题抽象化了,可能有些是衍生的新概念,我们看着有些懵逼,

但是大部分的知识还是基于我们最开始学习的知识构建的,你可以先从这方面入手

这就好比你上六年级,让你做一年级的题一样,就算当年你一年级学的很烂,你也一样可以,因为你的知识体系在一个相对较高的水平,前提是六年级的你不是倒数第一[捂脸]

序章三

努力,这个感觉说的就是废话了

因为你想要提升,想要进步,不是躺着一边玩着游戏一边想着我要变成大牛

当然也不是说每天除了工作,剩下的时间都用来提升自我,

如果真这样的话,我看你不是提升,你是要升天了

学习的时间也是要有规划的,剩下的时间可以健身运动运动

我不提倡以身体换取金钱的学习方式,要适量适当的

比如你是刚开始学习计算机的学生

那你一定要压榨自己所有的时间进行学习

如果你已经从事这个行业,那么就可以适当的留一些个人的时间,剩下的时间用来提升自我

序章四

再补充一些

我觉得开发人员无需每天沉迷于学习某个某个框架,

开源框架的社区开发者有上百上千人,你的学习速度是 永远比不过框架的更新速度的

但是强调 我不是说不需要学,而是没必要沉迷于学习框架

框架无非就是我们开发中的一个工具,一个轮子而已

最最重要的还是计算机的底层原理

世界上只有两种人,一种是懂二进制的人,一种是有女朋友的人 --哈哈

当然框架也有很多我们可以学习的地方,比如它的设计模式,它的代码规划等等

但第一重点还是底层原理以及你学习的语言的底层原理,

比如我最近最近在看的计算机编译与jvm,jdk源码解析等

保持自己的对编程的热情,不要说自己从事编程行业是为了钱,没有能力谁会给你钱呢?


鱼蛋儿影视


新手程序员如何自我提升呢,学习是必然的,想要学习无从下手,小编建议先根据自己的实际情况设定一个学习计划,学习周期,然后开始查找相关资料进行筛选,找到适合自己的学习资料,可以看书也可以看视频教程,不过比较建议看教程资料,毕竟看书的话,书不一定是什么时候出版的,不一定会适合提升学习,

不管你是从事哪一个岗位的程序员,提升最主要的就是技术能力,一定要找一些最新的技术视频学习,可以参考培训机构的课程大纲来学习,毕竟思路,学习路线都有了,学习起来也会有计划,如果条件允许,可以考虑购买线上课程,这样学习起来会更好,坚持学习是最主要的,不能三天打鱼两天晒网,有点成绩就骄傲,一定要坚持学习,给自己设定好学习目标,祝好


千锋哈尔滨


  互联网公司本身结构比较扁平,管理岗位较少,程序员只学到技术就可以了吗?你想过自己的未来规划吗?那么我们该如何进行职业规划和技能储备,才能从激烈的竞争当中脱颖而出实现自我提升。

  一、拓宽业务场景

  这里的业务场景分为大业务场景,也分为小业务场景。大业务场景即不同的细分行业,如电商、内容、视频、共享平台等等。千锋建议程序员们在进行工作选择的时候不要被自己原先所属的细分领域太过限制,认为自己原来在电商公司以后也必须在电商公司。事实上,多去尝试不同领域的公司,去了解不同领域的公司在技术实现上有什么异同,对于程序员更深入地理解技术是很有帮助的。

  二、把握职场节奏

  在职场上有一个时间标准:3 年。 3 年时间,一定要在工作内容和职级上有一个质的变化,这个变化可以靠升职得到,也可以靠跳槽达成目标。

  初入职场的 3 年,主要的工作内容就是夯实基础,此时基本处于「完成上级交付的任务」这样的阶段。但在这个过程中,员工不能仅仅完成任务了事,而是要不断思考为什么上级要布置这个任务,这个需求是怎么来的,用于解决什么问题,有没有更好的解决方案等等。

  之后的 3 年,也就是职业生涯的 3-5 年,作为程序员,需要达到一个小 leader 的层级,即带领一个小团队(可以仅仅有几个人)负责某一个某块或是功能的研发,此时在上个阶段积累的经验和关于解决方案的各种想法的作用便凸显出来。而此时作为小团队负责人的角色,程序员更多地需要关注上下游的逻辑,能够形成完整的逻辑链条。

  工作经验的 5-8 年,此时程序员已经进阶成了技术负责人,可以独立负责某一个产品的研发,可以成功地推动产品从 0-1 的阶段,此时更多需要关注的便是跨部门之间的合作与沟通,确保研发行程的按时交付。与此同时,更多地关注一些产品设计方面的内容,会对进一步的晋升很有帮助。

  末后一个阶段,即工作 10 年以上,此时达到研发总监或是更高的职位会是一个比较理想的状态,而对于这个层次的要求,是对于整个行业能有比较清晰深入的判断,能够感知未来技术发展的方向并为公司提前布局。

  三、训练复合技能

  除了编程之外,程序员要尽量培养一些其他方面的技能,例如演讲、写作等等。这样做一方面可以为程序员提供一些兼职机会,如主讲技术相关的直播课程、参考文章或书籍的撰写等。类似的机会在提供报酬的同时也会增加员工的知名度和行业影响力,更有甚者,在社交媒体上发表了相关文章之后,吸引了一批志同道合的同行,开始合伙创业,有了更大的机遇。

  就算没有这些额外的收益,复合技能的人才在公司内部也会受到青睐。

  四、保持紧密沟通

  有些程序员认为自己做的是技术性工作,只要写好代码就可以了。这是错误的认知。根据以往服务候选人的经验来看,那些有意识在工作之余关注行业动态,积攒人脉资源,并且乐于与同行沟通的程序员,往往在职业发展的路上走得更远。

  大数据程序员除了专业的技术外,还需要一份合格的职业规划。


上海千锋教育


1、找一种你喜欢用到工作中的语言

要成为一个更优秀的程序员,需要经常性的练习编程并用不同的语言和技术扩宽你的经验,但是语言是如此之多,很多时候你不知道从哪里开始,也不知道该选择什么语言才最适合你要解决的问题风格。

如果你还没有想好具体的语言,并且想要先试验下的话,建议你搜索求职网站,看看是什么语言最抢手。你可以牢牢掌握一些特定的语言,然后开始研究和试验。

2、发现问题或任何让你觉得生气的事情

和一种语言一起成长和点燃学习激情的最好办法是,使用你学到的知识来帮助解决令你感到苦恼的问题。不仅要学习语言本身,也要学习语言可以如何应用到实际生活中的问题。

3、公开发布到公共代码平台上

即使你不认为有人会使用它,喜欢它,或者甚至看上一眼,还是要发布你的代码,一旦你觉得它达到生产标准的话。你的项目可能不会改变世界,但它可以让你脱颖而出,让你可以坦然对待别人查看和批评你的工作。此外,它可以让你的简历增色不少。

4、学会如何简明扼要地解释给技术和非技术人员听

要真正掌握高效的沟通,你需要对实际工作中你需要工作于什么有一个基本的了解并彼此交互。写博客,并与编程社区互动有助于有效地提高沟通能力。

如果你能掌握简练,实事求是,通俗易懂的沟通方式,并将复杂的问题和解决方案分解为可理解的小块,那么你就能在软件开发领域立于不败之地。你会发现项目经理,其他的程序员,以及执行主管等都会争夺你去他们的团队。

5、知道自己会陷入困境

毫无疑问,就是在编程中我终于接受了我是人这个事实——我也有犯迷糊,笨手笨脚,错误频出的时候。没错,你也是如此。你会错过最后期限,太多次点击“全部回复”,滑动捕捉一些严重的错误,或者在应用程序架构中轻易放过一个令人难以置信的bug。

要想保持快乐和健康,那就得让自己去分析错误,然后从中学习,还要应用所学的东西以便于下次完成得更好。


莫非8125


可以看看我的文章哦,看看你要学什么,我是Python开发的,网上度盘里面有很多相关的视频资料的,找一个搜网盘的软件,一搜都是的,一大把。



大胡子网络


兴趣是最好的老师。

比如最常见的爬虫,如果只是一味的爬虫那么比较枯燥。

那如果我想爬微博上女生最喜欢什么样的男生。这个是不是会有意思一点,

随着你编写爬虫,势必会遇到正则,xpath,以及py常见的网络框架,

微博也有相应的人机验证机制,

不得已,你会接触到一些反爬技术,以及绕过验证码,

相关技术比如无头浏览器,机器学习识别验证。

等你绕过网站之后,成功获取数据,

随之而来的是统计学的相关知识,以及自然语言处理。

如何分析,如何做用户画像,

如何做可视化等等。

所以建议从一个你感兴趣的领域开始,不断拆解并实现他,

你会发现你学到的东西有很多。


知识每一天


如果在工作就按照要求直接开干,不懂就网上搜索,一般别轻易问同事,毕竟大家都挺忙的,遇到语言不会就看网上的入门教程,框架不会就看官网的tutorial什么的。

如果还在自学阶段,给自己定一些目标吧,比如做一个简单的博客系统,按照自己的设想找目前搜索的人多热门的语言开写,遇到问题同上解决,一开始你会发现举步维艰,到处都是不会不懂的,后面就慢慢的有点自信了,就算不会也可以学,有了这个信心你就入门了。


分享到:


相關文章: