{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

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

zorpanzorpan 回答0 收藏1
收藏问题

10条回答

Meathill

Meathill

回答于2022-06-28 14:50

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

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

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

2.熟悉软件工程的思想

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

3.提高自己的理论水平

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

4.广泛涉猎

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

5.多学习业务知识

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

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

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

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




评论0 赞同0
  •  加载中...
impig33

impig33

回答于2022-06-28 14:50

先推荐几本程序猿的书吧

《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.提出或者加入大型安全系统的架构或者开发。

评论0 赞同0
  •  加载中...
learn_shifeng

learn_shifeng

回答于2022-06-28 14:50

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

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

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

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

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

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

5.还是要自律吧。

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

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

评论0 赞同0
  •  加载中...
objc94

objc94

回答于2022-06-28 14:50

兴趣是最好的老师。

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

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

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

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

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

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

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

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

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

如何做可视化等等。

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

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

评论0 赞同0
  •  加载中...
20171112

20171112

回答于2022-06-28 14:50

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

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

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

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

前言

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

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

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

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

最开始的改变

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

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

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

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

序章

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

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

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

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

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

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

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

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

序章二

学习适量的深度

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

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

那这种情况其实很好解释

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

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

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

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

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

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

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

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

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

序章三

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

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

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

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

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

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

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

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

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

序章四

再补充一些

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

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

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

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

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

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

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

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

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

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

评论0 赞同0
  •  加载中...
wslongchen

wslongchen

回答于2022-06-28 14:50

首先看你现在是处于编程什么阶段,如果是新手可以找一些简单的编程语言,网络一搜一大把的基础教程。如果已经有一定基础了,就应该学习对应进阶需要的编程知识。。。。

看你的问题,应该是新手小白。建议你学习c#或者java,这两个语言比较简单。不建议学习python语言。虽然网络上好多人都建议学习这个,认为这个简单。但是个人认为不适合新手,里面的缩写和第三方库,不适合你学习编程思路。。。尤其是学习好后就业面窄,除非你想做爬虫。。。。毕竟c#和java可以实现爬虫语言的功能。。。如果你工作中想提高工作效率,想自己编写工具,建议用c#,简单,快速。

评论0 赞同0
  •  加载中...
xfee

xfee

回答于2022-06-28 14:50

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


评论0 赞同0
  •  加载中...
Near_Li

Near_Li

回答于2022-06-28 14:50

实践是检验真理的唯一标准!!!

(就会这一句文辞别打我)

兄dei们,举枪的时间再多,也不如直接去战场厮杀啊!!!

咱们夯实基础就直接上战场吧!!!去实习!就历练!去经历这时间的困苦!!!

实习的时候真的你的编程能力直线向上,都是使用场景,身边都是大佬,不会问就可以了!!!

想不提高都难!

评论0 赞同0
  •  加载中...
Towers

Towers

回答于2022-06-28 14:50

多看代码,看好的优秀的代码,更要看自己过往写的代码。对比其中的优劣,你会找到差距,同时也会找到方向。

评论0 赞同0
  •  加载中...
tianhang

tianhang

回答于2022-06-28 14:50

从解决实际需求为目的开始学习。

从完整的例子开始模仿学习,掌握基础知识。

同时查看相关语言的基础文档。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<