有基础,单靠自学英语靠谱吗怎么能在IT行业中走出第一步

推荐这篇日记的豆列
&&&&&&&&&&&&中国领先的IT技术网站
51CTO旗下网站
挨踢部落故事汇(3):入行IT自学成才
临河而羡鱼,不如归家织网。授人以鱼,不如授之以渔。不忘初心,方得始终。
作者:51CTO开发者交流群来源:51CTO| 14:59
【原创稿件】研究生期间参与的企业项目坚定了益达进入IT行业的决心。那份执着与看待问题的思维,使他在开发路上愈战愈勇。在益达看来,处理问题的思维就相当于一个软技能,是学会了就不会跑掉的东西。问题的本质、触类旁通、借鉴思想,严谨性这些都是他的思维要素。遇到问题多思考,多问what,why,有耐心,不急躁,多沟通,层层排查最终找解决办法。
益达&大数据开发
学生时代脱颖而出
益达高考选择的是电子信息科学与技术专业,计算机学习占比居多。他从几乎没接触过电脑的完全小白正式走进了0和1的世界,慢慢学习了C,JAVA,HTML,Android等计算机开发语言。益达本科毕业后又通过保研进入研究生进修阶段,研究无线传感器网络数据聚类算法,SVM算法,神经网络等,通过MATLAB去实现,比较优劣进行改进。研究生期间益达参与了部分企业项目,根据项目需求自学了Delphi和MFC相关知识,项目实战过程使他获益匪浅。2015年6月益达研究生毕业,以Android开发攻城狮的角色进入到工作岗位,从此他离开校园,变身成一个职场菜鸟,开启另一种人生状态。
既然要做一件事,就尽自己更大的努力做好
初入岗位,自然是适应与学习,而这些主要是通过沟通和自学成长的。看老程序猿写的业务代码,成了益达第一步要跨过去的门槛,由于业务较大,代码量不小,需要花很多时间去学习。那个时候他接手的第一个任务是开发支付SDK,完全是益达独自一人完成的,当时他与其他程序猿各种沟通协作,询问查资料。Git、51CTO、掘金、StackOverflow还有各种技术相关的论坛网站都少不了他拜访的身影。谈及到这个SDK任务,他印象最深的是微信支付问题,其他银联和支付宝的接口都比较好接入,容易测试联调,但微信支付接入就比较有坑了,不过在他查阅资料调整测试的不断努力下终于实现了。完成之后他并没有继续做SDK开发,而是应部门需要被转到JAVA服务器去做实时数据计算开发。
后台开发需要做数据统计相关工作,益达从接触Kafka、Storm等开源工具做起,更多的接触了Linux系统,在实践中不断学习到常用的各种命令,实现shell脚本的编写。服务器管理中使用nginx、haproxy等代理工具,自学netty与jetty的开发流程。由于唯一一位老司机离职了,导致storm集群、mongo集群、elasticsearch集群、Docker集群等维护工作也是益达一人接管。开发中益达觉得遗留下的elasticsearch统计对他们业务的针对性不强,所以他又在探索学习Apache
Kylin和druid工具,不断提升IT技能来适配当前业务需求。
益达在如此强压环境下,并没有抱怨,在他看来,尽自己最大的努力做好一件事是对他个人价值的体现。
自学与反思,是开发的必备要素
益达在开发中碰到的问题不计其数,身经百战的他回顾走过的路,填过的坑,整理了以下6个方面,希望能帮助初入职场的程序猿们少走弯路。
1.代码方面,结构清晰,逻辑严谨,注释得当,方便自己理解以及测试定位问题,同时也方便别人理解看懂代码。
2.业务方面,一定要协调沟通并且理解到位,否则很容易和需求方产生各种问题,进而可能会有各种扯皮和更改。比如后台服务接口开发中,业务代码遇到问题也要及时和接口调用方进行确认,及时做调整。
3.基础能力方面,自学技能是一个很好的技能。如果对设计模式、数据结构等基础还不是特别明白,一定要去理解学习。可以结合开源框架学习,开源框架中一般都会包含多种设计模式和常用的数据结构,比如Android中的RxJAVA响应式编程,学习其中的思想。
4.资源方面,开发中要养成资源及时释放的习惯,尤其是JAVA开发,毕竟&Stop The
World&并不是什么好事情。不用的对象等要及时清理掉。CPU、内存、负载等硬件资源也要做好监控工作。
5.性能方面,其实在写代码的时候就要有这方面的意识了,如提到的资源释放问题。同时在开发中要注意一些细节,例如:在处理数据的过程中采用List数据结构,一般采用ArrayList比较多,但如果你的数据添加、顺序访问、删除比较频繁,那它就不合适了,相比下链表结构的LinkedList就会好很多。还有就是学会性能调优,在JAVA中就需要理解JVM,学会调优工具的使用,然后定位问题,做出相应的优化。
6.分布式服务器开发管理方面,主要是各类框架集群的搭建、服务代理的使用(外网代理转发到内网等,负载均衡处理)。如果集群搭建有问题,会影响很大,比如老司机留下来的ES集群,在集群节点内存分配、节点角色分配上都不合理,导致集群性能不稳定,所以又重新做参数调整和部署,数据索引方面比如index的mapping设置,routing设置以及冷热数据分离,数据压缩等处理。总之开发过程中遇到的坑还是很多的,不论是业务层面还是非业务层面,都要开发者们有耐心去解决。
一入行业深似海,想要如鱼得水,就得学会掌握更多技能,不断丰富自身,广度深度都进行探索,也许有些东西开发中不一定用得到,但是学会了,总不会错。无论是各类开源框架、还是开发语言,其实都只是使用工具,毕竟框架总是层出不穷的,掌握核心思想就能更好的遨游各处。
如果你也愿意分享你的故事,请加51CTO开发者QQ交流群 联系群主小官,期待你的精彩故事!
【51CTO原创稿件,合作站点转载请注明原文作者和出处为】
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条头条头条头条
24H热文一周话题本月最赞
讲师:119828人学习过
讲师:125345人学习过
讲师:12035人学习过
精选博文论坛热帖下载排行
本书第1版曾被KDnuggets的读者评选为最受欢迎的数据挖掘专著,是一本可读性极佳的教材。它从数据库角度全面系统地介绍了数据挖掘的基本概念...
订阅51CTO邮刊百度拇指医生
&&&普通咨询
您的网络环境存在异常,
请输入验证码
验证码输入错误,请重新输入完全没有基础,想自学编程,有什么比较好的书或者方法?还有先学什么语言比较好? | Hello world!小组 | 果壳网 科技有意思
129252人加入此小组
如题。(推荐C语言和Java的就请不要回答了……)
+ 加入我的果篮
找个会编程的男朋友...好吧,其实看书什么的意义不大,选门好玩的语言开始折腾就可以了,一般我会上网找各种例子,照模样输入到电脑里,然后随便改改参数看会出来什么不一样的东西,如果是可以画图的例子可能可以试试画个圆或者画一个方块,然后在网上找找填个色什么的...语言推荐Java,既没有C的指针,内存分配等搞得头大,又可以初步接触面向对象等一些基础知识
当初我学Java的时候就是用servlet画了个围棋棋盘...然后一点一点添加规则..最后找了个同学跑来下五子棋...后来各种happy~棋盘还可以换皮肤^_^ 哈哈...
第一步。。了解计算机的基本知识……啥是内存这样的基础。。第二步。。找一个比较容易入门的语言,都是c语言不错— —。。。虽然我是从actionscript入门的— —。。。多做后头的习题。。。了解编程的思想。。然后就可以向高阶出发— —。。。
看《计算机程序的构造和解释》,mit的计算机教材,lisp这种语言掌握与否不重要,但是里面的知识一定要掌握,会很有帮助。你不理解程序是如何构造和运行,不能理解运行时环境,即使掌握了语法,也只是个搬砖的工人。
程序员,科幻迷
推荐Python不解释
打好基础才是重点,特别是数据结构,算法,设计模式,看下操作系统,软件工程UNl等,简单了解下程序在底层究竟是怎样的运行,例如值类型与引用类型是如何在内存中存取等,假如你用C#的话看那本《你必须知道的.net》主要讲底层的,入门的话可以看《C#入门精典》第四版我看完过不错,后面的版本可能会有点厚,设计模式《大话设计模式》用C#的讲各种设计模式的有趣易懂,数据库也可以用《C#数据库入门精典》。假如java的话看下《thinking in java》不过没基础看应该会看不懂,看多几遍就可以了,这边精典来的觉得无论用什么语言都可以看下,C++的话可以看《C++primer》,as的话网上资料比较少,可以看《ActionScript3.0 CookBook 中文版》或者《Flash_ActionScript3殿堂之路》其他的话我不是很清楚。多动手做才是硬道理,找个东西做,语言只是你实现的一种工具而已,不必那么纠结,算法解决问题的方法,思想才是重要的。书籍的话可能还有其他比较好的,我就推荐些我看过的,其他的不是很清楚~
从基础开始学习多枯燥哇...像我这种就是从玩开始学...回头觉得哪不对再补基础...不过如果是应付考试就还是从头开始看吧...
我也推荐Python有点疑惑2L说的其实是不是applet
的话:看《计算机程序的构造和解释》,mit的计算机教材,lisp这种语言掌握与否不重要,但是里面的知识一定要掌握,会很有帮助。你不理解程序是如何构造和运行,不能理解运行时环境,即使掌握了语法,也只是个搬砖的工人。作为一个初一学生,表示完全看不懂。
我很希望在我初学的时候有人对我说这样的话。呵呵,当时只注意语法什么的,完全对环境,程序的构造,解释,以及很多基础知识都不清楚,结果走了很多弯路。做了很多搬砖的体力工作,后来重新学习才成为更进一步的基础。如果只是解决实现功能问题,看这些帮助不大,如果解决深层次的问题:性能,扩展,健壮性。那会有大帮助。
现阶段你还是学好英语数学,适当培养爱好比较靠谱!
5L不解释,我解释一下。。从培养兴趣的角度来说,可以做一些小东西来获取成就感对学习是最有帮助的,至于基础的数据结构、操作系统原理神马的对初一的楼主来说都太扯淡了。待入门之后,你有的是时间来学习这些。Python的类库很多,运行平台也很广,最重要的是它很易学。即使你以后不干相关工作,将其作为shell来用也会省下你很多力气。《和孩子一起学编程》这本书你可以一看。
入门快,学JAVA
- - C语言的科学和艺术。。。我觉得不错 不过貌似书里的内容有一点老。。。不过书里的思路、方法和内涵很好!
的话:作为一个初一学生,表示完全看不懂。思想比语言要重要,才初一,搬砖先
放弃吧兄弟,爱玩什么玩什么,没必要学这种伤神伤脑的东西
当然从c语言学起,可以看看谭浩强的书!
就看这个吧。 照着做完之后就能自己想接下去看什么了做不完的话么。就放弃自学吧programing
的话:推荐Python不解释那还有什么比较适合初学者的语言?
的话:别害人了,谭浩强的书会导致大脑永久性损害并彻底失去编程能力,非常危险。那就怪我没说详细吧。谭的书只是做为入门级别看的,里面讲了一些c的基础语法、语义,如果再想深入学习,可以看《C Primer Plus》,这本书已经把C讲的相当详细了,还引入了c99标准以及简单的编程分析。但是编程的灵魂是算法,要是你都晋级到编程能力方面了,你就可以学习算法了,算法的入门白皮书《算法竞赛入门经典》。这也是我暑假打算学的一本书。我是软件工程专业的,希望这些对你有帮助。
还有,永远不要觉得C过时了,C在编程方面的地位是不可撼动的。你要是想专注于编程解决问题的话,这是必学的,但如果你侧重于应用,比如网络,就可以直接java或者javascript了。c是一种结构化编程语言,也许你只用三天就可以学会所有语法语义,但是如何应用却是问题,这就是为何要学习算法了。
入门学习的话最重要是提起学习兴趣 能在每个阶段看到自己的学习成果 我建议学python闲暇时间看看名词、算法、协议
可以先看看 网易公开课里Mehran Sahami的编程方法学
适合入门的一个课程 领会一下编程思想 培养下兴趣 然后再深入学习下比较好
完全有基础的人自学怎么可能学的动C,一个seg fault就可以把人逼疯,初学还是用谢简单功能少的语言比较好,pascal就不错,接触一些基础的语法,然后换高级一点用java或者python
的话:打好基础才是重点,特别是数据结构,算法,设计模式,看下操作系统,软件工程UNl等,简单了解下程序在底层究竟是怎样的运行,例如值类型与引用类型是如何在内存中存取等,假如你用C#的话看那本《你必须知道的.net》主要讲底层的,入门的话可以看《C#入门精典》第四版我看完过不错,后面的版本可能会有点厚,设计模式《大话设计模式》用C#的讲各种设计模式的有趣易懂,数据库也可以用《C#数据库入门精典》。假如java的话看下《thinking in java》不过没基础看应该会看不懂,看多几遍就可以了,这边精典来的觉得无论用什么语言都可以看下,C++的话可以看《C++primer》,as的话网上资料比较少,可以看《ActionScript3.0 CookBook 中文版》或者《Flash_ActionScript3殿堂之路》其他的话我不是很清楚。多动手做才是硬道理,找个东西做,语言只是你实现的一种工具而已,不必那么纠结,算法解决问题的方法,思想才是重要的。书籍的话可能还有其他比较好的,我就推荐些我看过的,其他的不是很清楚~这回复我看过不止一次
先玩着培养感觉吧。反正习惯的东西不让人教坏。你也不知道啥是好啥是坏玩到上手的感觉以后再考虑 更多具体的内容。至于其他的。不解释
的话:那还有什么比较适合初学者的语言?同问,另外喜欢楼主头像,卖萌向(ˇ_ˇ)
python或者ruby吧
python或是C++
的话:python或者ruby吧这个好,一般大学里都是python起步。现在ruby因有rails, ecosystem非常好;推荐ruby起步
另,建议从interpreted language起步,毕竟可以直接在terminal/console里操作。compiled language, java之类,反应木有那么快。另,我的同事,好多喜欢用clojure和scala,都是不错的选择~
通信工程、计算机硕士
楼主初一啊!我告诉你一个又容易开始学又很炫的语言:HTML做网站用的,你学了之后就可以给你们班做一个网站了。推荐站点如果喜欢算法类(就是可以用来做数学题的那种)语言,可以学计算机竞赛中用的语言,具体是哪个我不太清楚,可以和你们学校的计算机老师联系相关的计算机竞赛培训团队。
我自己接触的三门语言:面向对象:python(很易用)函数式:Mathematica(功能强大,简洁高效,语法奇葩)过程式: C (这个。。。太头疼了)
的话:这个好,一般大学里都是python起步。现在ruby因有rails, ecosystem非常好;推荐ruby起步大学里都是谭浩强的C。。。
的话:楼主初一啊!我告诉你一个又容易开始学又很炫的语言:HTML做网站用的,你学了之后就可以给你们班做一个网站了。推荐站点如果喜欢算法类(就是可以用来做数学题的那种)语言,可以学计算机竞赛中用的语言,具体是哪个我不太清楚,可以和你们学校的计算机老师联系相关的计算机竞赛培训团队。Pascal?
游戏程序员
的话:就看这个吧。 照着做完之后就能自己想接下去看什么了做不完的话么。就放弃自学吧programinghead first 的不错,多图,好笑
同问。。很多好答案啊,mark之~
的话:看《计算机程序的构造和解释》,mit的计算机教材,lisp这种语言掌握与否不重要,但是里面的知识一定要掌握,会很有帮助。你不理解程序是如何构造和运行,不能理解运行时环境,即使掌握了语法,也只是个搬砖的工人。《计算机程序的构造和解释》相当不适合新手啊,推荐替代品《程序设计方法》,同是Scheme(lisp方言)经典教材而且手把手养成。。。
的话:推荐Python不解释
1.从python入门,(OO,各种lib Scipy etc)2.C一定是逃不过的;推荐 C Prime Plus + C Programing Language 2e3.玩C的同时,以下的书是一定要看的:(推荐看原版,E文不好的先看中文再看E文)Computer Systems: A Programmer's PerspectiveDiscrete Mathematics and Its Applications 5eIntroduction to Algorithms4.选个自己用着比较愉快的语言做小型项目5.最重要的:学好数学啊!!!
的话:作为一个初一学生,表示完全看不懂。初一??学basic吧
的话:《计算机程序的构造和解释》相当不适合新手啊,推荐替代品《程序设计方法》,同是Scheme(lisp方言)经典教材而且手把手养成。。。+1
尤其后面的部分真的不简单
Lisp 教材有计算机程序构造与解释 虽然只是一个方言。不过很纯净的语言。lambda函数很牛逼的。实用common lisp编程。还有就是land of lisp,这本没有中文版的。但是英语基础好点,还是可以啃下来的。
初一先学pascal,基本掌握了,再转c++,同时看看算法书,像刘老大的黑书之类的
为什么不要提c??为什么不要提java??lz好奇怪。。。现在通用的编程语言的语法格式大部分都是从c来的啊,面向对象思想到现在也是java最棒啊。。。c学编程思维和变成习惯。。java学习面向对象和软件开发。。能把c所有的库文件头都使用过和java的包都使用过。。你就是大师了,可以用一半月薪5000_1W+
.NET程序员
LZ 是妹子?????
本人可以提供手把手培训服务。。。。。算法 结构
c c++ c# pascal java ......... 各种科目都有哦。。。
如果是竞赛啥的一般都用的Pascal吧,个人倒是推荐Python ,可以看看a byte of python 入门
的话:这回复我看过不止一次还有在哪来看到呢?
我初一的时候学了pascal,现在很。。后悔。。。pythoon很好的入门语言。。udacity的课不错
我初二开始自学的。。老实说,是从Visual Basic开始的。并且,我毫不吝啬对Visual Basic作出正面评价。(没错,我既看过SICP,也看过CLRS,最喜欢的语言是Ruby)我将从两个方面进行阐述,分别是VisualBasic为什么好;以及C,Python为什么对初学者不友好。最后,我将给出我的建议1.Why VisualBasic?1.1 快速的得到结果,只需要少量时间学习,楼主就可以做出 (a.有趣的 b.有实用价值的 c.有图形界面的)应用程序。简单性和趣味性对初学者才是最重要的。1.2 为什么大家反对Visual Basic? 因为VB是一门被Microsoft操纵的语言,它也没有被良好设计成方便做某些实际的应用。1.3 VisualBasic只是开始,你可以通过它学一些基本概念,比如变量,数组,循环,函数。经过一些时间后,比如一个月或者两个月,就可以继续学习新的东西2.Why not C, Python, Lisp, Haskell, Ruby or some other stupid things? 2.1 老实说,这些语言或许适合一个CS专业的大学生用来入门,但楼主只是一个初一的小loli。作为一个在初中开始自学编程的人来说,我很有体会。在你完全不知道函数这个名词的数学意义的时候,为什么想要去了解curring 和 lazy evaluate是怎么回事呢?2.2 另外一个重要问题是,这些语言想要做出一个GUI程序很困难(因为实际应用中很少有人做GUI),不适合初中小朋友的好奇心3.What do I recomended as a student who tried to study programming by myself in my junior high?3.1 对于VB这个选择,我是支持的。3.2 其实还有其他选择,实际上它并不是一门编程语言,但它确实每一个21世纪的hacker都必备的一项技能:html。 html是网页的标记语言,再加上CSS就可以做出完美的网页设计。再加上javascript,你就是一个合格的前端工程师了。3.3 总之,楼主可以选择VB,也可以选择html。我更推荐后者。
(C)2017果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:

我要回帖

更多关于 自学平面设计靠谱吗 的文章

 

随机推荐