1. 聚能聊>
  2. 话题详情

程序员如何自我学习和成长

关于成长,这是一个上至10年的大牛、下至3年的菜鸟都能参与的话题,作为一名在坑里挣扎了六年的码农,我也一直在探索、一直在思考、一直在总结,作为一名码农到底该怎么成长?

这是一个值得持续讨论的话题,话题比较大,下面是我们对话题做的几点支线发散:

  • 是什么阻碍了我们的发展?
  • 我们需要的技能是什么?
  • 工作中怎么提高自己?
  • 工作之外你做什么?

欢迎大家参与讨论!

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    淘公仔 x 1

  • 奖品二

    优酷VIP季卡 x 2

228个回答

9

werelone 已获得优酷VIP季卡 复制链接去分享

我在上大二,程序员修养什么的谈不上,但是我觉得自学是一件很开心的事。去网上寻找各种资源资料,去qq群不厌其烦地问一些“白痴”问题,去知乎、csdn、sf上面看各路大神的吐槽。我觉得对一门技术的研究,不仅仅停留在学会使用,更多的是了解它的不足,它的局限性,它坎坷的发展历史,它背后的工作团队,以及它面临没落时的无奈。代码永远都不会无聊,我希望能不忘初心走完大学。

猫腻了个咪 回复

同感,我也是大二

anonymous幽灵 回复

大三,也自学

牧歌_木子 回复

工作几年了,上学的时候,没有这么

lostexin 回复

同大二,大一下学期觉醒,现状和你差不多

duduzhou 回复

同感同感,我也大二,大一结束的暑假觉醒的,现在正在java web的坑中挣扎!

swu 回复

我也是大二的,发现貌似计算机专业的学生都只能靠自学啊

评论
4

ricman 已获得淘公仔 复制链接去分享

已经工作好几个年头了。分享一下自己的心得
刚刚毕业,心里总是觉得自己技术不错(其实是自己认为的)可能是新毕业生了。公司的老人很照顾,加上自己也比较爱问,工作基本没有问题,就这样漫漫过了一年,年底时,找了另一家比较有名气的公司去面试自己,发现自己的基础一败涂地. 才明白过来自己骗了自己。 所以,需要常常反省自己,不要把自己看得那么重,在公司所有的业务中,自己做的真是微不足道。需要学习,把自己基础打好。当然了写写blog,githut是很重要的。可以和行业内的其它人交流。
不管是在一家公司也好。一定把业务弄清楚,下功夫去研究,毕竟是别人的心血,不要看觉得很烂的代码,它也是很有价值的。学会虚心学习,学会换位才思考,自己来写的话会不会还是这样的。多去想。总是会有机会的
最后,把目光放远一点,多去实践,不要只做思想家。把自己定位清楚。

大利猫 回复

“就这样漫漫过了一年,年底时,找了另一家比较有名气的公司去面试自己,发现自己的基础一败涂地. 才明白过来自己骗了自己。”我也有过同样的经历 ,定期总结很重要

苟雨轩 回复

我跟你一样,在学校学的感觉很好,进入工作相当于刚入学的新生

云端1573 回复

我是计算机网络技术的学生,以前很少接触电脑,感觉电脑是一个很神秘的东西。进入大学,因为专业的原因,天天触摸电脑,学习程序设计已经有一年多了,感觉自己什么都不会,没有一点实战性,都是一些理论基础。我认为要想学好一门语言,必须长期的坚持,不断的与时俱进。

超级学童 回复

github

kylin_yang 回复

定期总结很重要,心态和选择也很重要...面试过好几个自认为很nbility的程序员,发现其实只是把工作做完,能复制粘贴外,跟普通应届生没什么差别...

吴山道人 回复

没有实践一切都是空想。

评论
4

初码 复制链接去分享

这个话题挺好的,贴个我在博客园写的文章吧
《很认真的聊一聊程序员的自我修养》,原文地址:http://www.cnblogs.com/printhelloworld/p/5698984.html

今天逛博客园,看到了一篇推荐的文章《浅谈程序员的英语学习》,就点进去看了一下,对于文章中的观点我非常认同,英语是非常重要的,但文章站的高度还是太高,具体表述的学习方法我不是很认同,也认为不太实际,恰好之前有一篇一直没有发表到首页的文章想重新发布,今天就借此机会和大家很认真的谈一谈程序员的自我修养问题。

先介绍一下利益相关,我的背景:

初中开始参加信息学与数学竞赛,大学本科软件工程专业,毕业后在银行做大数据分析与项目管理,后自主创业,做过传媒公司、软件外包公司,现在中国(南京)软件谷有个工作室,做些自己喜欢的事情。15年编码经验,6年创业经验。主要技术方向是.NET、HTML5、云服务、应用级开发等,自我整体水平评价为,资深程序员、初级架构师

首先要谈的是,今天的话题所聊的程序员包含哪些人?

在说之前,不得不提到一个很有名的程序员赵劼,他有过一个观点:“坚决反对北大青鸟等机构”,以前我也很赞同这个观点,但是现在,我在“赞同的基础上”,又坚决反对甚至反感赵劼们“发表这种观点”。因为这种观点,能够帮助并作用到的人群,是赵劼们最不可能遇到的基层开发人员,而这些最不可能遇到的人,却恰恰是在中国的最普遍的程序员,他们也是赵劼们最不可能甚至不太愿意帮助的人。如果一个高阶程序员,自恃理科基础好,逻辑性强,有过完整的语言学习经历,就认为至少达到这样才是程序员,甚至觉得其他的不学数据结构的人就不要做程序了,那真是非常的妄自菲薄。

在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具

大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些“自我修养”,是最基础的,是普世的。

所以今天的话题面向的程序员,就是所有的正在写代码或者曾经写过代码的程序员,也包括广义上的程序员,例如项目经理、架构师等等。

做任何事都是有明确目的,那么

再谈一谈,程序员提高自我修养是为了什么?

程序写的好有人崇拜,有妹子喜欢?还是到博客、论坛、社区发表文章进行分享获得成就?我想这是少数人的追求,也是更高的追求,在这之前

我认为,在中国,程序员提高自我修养的目的,是为了

1、更好的融入工作,减少困难,增加成就

2、稳步的提升能力,提高收入,达成财务自由

2、站在更高的层面看待自己的学习和工作,树立更加适合的人生观价值观,家庭幸福,生活愉快

说的更通俗一点,就是用更加合理的方式和方法,赚取到更多的收入

说了这么多废话,进入正题

何为程序员的自我修养?

正面论述很难说清楚,反向描述可能更通俗易懂一些,自我修养的对立面是“没有修养”,先说一说在这么多年的工作、学习、生活中,遇到的一些我认为“没有修养”的程序员形态:

1、程序员小张遇到了一个开发问题,很着急,想到了有几个群,于是到群里发了他的问题,坐等回答,发现没有人回答,就直接对话群主的QQ,群主也不回答,于是小张就搜索,突然搜到博客园有个帖子讲解了相关话题,他看完就给博主留言,我的邮箱是:XXXXX@qq.com,麻烦博主把源码发给我一下,谢谢。

2、程序员小张进公司3个月了,老板布置了很多任务,他觉得老板很没人性,工资给的不高,加班也不给钱,于是在写代码的时候能省就省,客户反馈有问题也不主动解决,敷衍为主,又过了一个月,跳槽了。

3、程序员小张正在写一个功能模块,需要进行某种加密,到百度搜到了一个编码模块,看不明白具体写了什么,但是放到程序里刚好适用,于是就这么原封不动放进去了。

4、程序员小张要对某个功能进行研发,项目经理对他说,这个功能应该能搜索到,你去搜搜看,小张就在百度搜啊搜,一天过去了啥都没找到,项目经理来到小张身边坐下,换了个关键词,1分钟就搜到了解决方案。

5、程序员小张学.NET已经工作3年了,工资还是10000,和公司提涨工资也没答应,想跳槽又犹豫,这时某个前辈对他说,你去看书吧,多看一些书,例如 《Visual C# 从入门到精通》,《CLR via C#》《Javascript权威指南》等等,于是小张买回来了, 随手翻了翻发现有些东西是他已经会的,有些看不懂的好像又用不到,而且书这么厚,要不要浪费时间去看呢?小张就这样反复纠结了半年,依然每天上班工作,下班LOL,偶尔还抱怨一下工资低。

6、程序员小张到了一家新公司,在做一个项目实现某个功能时,想起来以前做过这样的功能,可是竟想不起怎么实现了,于是就到自己电脑上找文档,找了好久也没找到,只好放弃,最后又折腾了2天,终于还是把这个功能给实现了。

7、程序员小张某天非常不高兴,因为他的项目经理和项目组的产品人员又变更需求了,新的需求又要对整个结构进行大的调整,小张很郁闷,到一个QQ里发泄情绪,说了这个事,于是立马,QQ群里面炸开锅了,程序员小李说,对,产品就是狗日的!程序员小王说,对,他妈的项目经理整天高枕无忧,就知道压榨开发人员!程序员小孙说,是的是的,我上一家公司也是这样,压榨程序员,幸好我走了。就这样,在一片骂声中,几个程序员心情舒畅了,小张开心的去玩王者荣耀去了。

我想,有些人可能已经明白我要说什么,有些人可能还不明白,具体的话我也说不出来,只能用一句话来概括就是:

在编写代码的过程中,善于学习、掌握方法、勤加思考、勤奋努力、持之以恒,长此以往,在编程中,你会发现不一样的自己。

以上这些还是比较抽象,那么

提升自我修养的具体方法有哪些?

程序员具体如何达成“较高的修养”,每个人各有自己的办法,我无法说到很细,就和如何提高做人修养一样,一句两句话是说不清楚的,但是有些说法也通俗易懂,比如一个小孩,有教育良好的父母,父母彬彬有礼,小孩从小开始接受正规教育,小学、初中、高中、大学,然后文化课程和社会实践良好,那么这个小孩最终的做人修养,一定比没有经历过这个过程的小孩更好一些。

同样的,写程序也是如是,下面我就讲一些最基本的、最浅显易懂的学习方法和道理,我把它叫做:

程序员基础的基础
一个好的开发人员,应该能够全面、高效、严谨的去处理任何软件程序和业务问题,成为一个好的开发,是一个很有意思的话题,不过无论这个话题如何开展,基础两个字必不可少,虽然代码量是衡量开发能力的重要指标,但仅能够熟练的进行代码编写是不够的,更要能深刻的理解技术原理和业务逻辑,扎实的个人基础和技术基础往往会促进代码的编写,更游刃有余的解决问题。

下面说的一些基础,可能绝大部分开发人员都不会在意甚至忽略,但恰恰这些才是开发大厦的基石。

1、科学基础
成为开发人员的过程不尽相同,有的是科班出身,有的是兴趣爱好,还有的是专业机构的培训,在这个过程中,可能全面或者零散甚至没有学习过计算机基础学科,但无论是哪一种,想要成为更高层次的开发人员,写出更高质量的代码,计算机基础学科的学习,是非常非常非常(重要的事情说三遍)重要的。具体的来说,基础学科在实践应用中,有如下几门是一定需要的,按照学习顺序排列如下

1)数据结构

数据结构课程通俗的说就是告诉你如何用最基本的语言类型、变量,关键词语句等,去处理各式各样的逻辑问题,我们称之为算法,而日常编程中的各种问题,例如排序、文件夹遍历操作、数据库查询等,都可以在数据结构课程中,找到对应的数学原型。数据结构课程的理解能力,也是一个人数学能力的体现,数据结构学习的好坏,是程序员水平差异的一个重要分水岭,对于这一块内容的学习,有如下建议:使用VB、C、C++、Pascal等语言,买一本相关语言数据结构与算法的书,或者在网上下载相关的PDF电子书,完整的学习一边,并将书本中的所有案例亲自编写运行调试一遍,当能够领悟到某些日常编程中常见手法源于某些数据结构和算法时,就基本达到了学习效果。

2)操作系统

  所有编程语言的开发以及应用的运行,都基于操作系统,桌面编程中的大部分场景包括内存、进程、文件系统、网络通讯、用户界面等,都源于操作系统的定义和概念,完整的了解操作系统的起源和组成以及运行逻辑,对多线程、复杂界面、文件管理以及一些难以正常理解编程思路等开发中遇到的场景,有非常大的帮助,不仅帮助理解,也能掌握更多有效的程序写法。具体可以买一本操作系统的书或者下载相关PDF电子书,完整的浏览一遍,做到能够结合实际编程场景来看待操作系统原理,就基本达到了学习效果。

3)数据库

  传统的关系型数据库,入门简单,深入却难,往往开发人员能够较快的掌握增删改查、视图、索引、存储过程等基本数据库操作,却在编写复杂查询、设计主外键、优化字段、去除冗余等时,出现只会依葫芦画瓢却不能自主思考扩展的状况。究其原因还是没能了解关系数据库的根本原理,而数据库这一门课程,系统的阐述了关系型数据库的来龙去脉,了解其中的数学原理或逻辑基础所在,对提升数据库编程水平有质的影响。建议也是买一本数据库的相关书籍或者下载PDF电子书,能够把熟练的把第一范式、第二范式等数据库课程的基本知识点与数据库编程场景建立起关联,也基本达到了学习效果。

4)编译原理

  编译原理是编程语言以及各类语言编译器的科学基础,可以说编译原理创造了世界上的几乎所有的IT应用,学习编译原理的基础是数据结构和算法,因此编译原理的学习要花费更多的时间和精力,由于现代高级编程语言的编译器,在代码优化、资源优化方面已经做的足够智能,因此,编译原理的学习对实战的影响越来越小,但是正所谓本盛末荣,如果认为自己对数据结构和算法的学习达到了一个较高的水平和状态,可以在编译原理学习上进一步深入,最终把自己和普通程序员拉开更大的差距。

2、英语能力

英语的天然特性和字母长度还有学科发展的历史因素,决定了编程语言一定是基于英语的,在编程过程中,从语言的关键词到文档的内容又或是搜索引擎的搜索结果,都不可避免的会遇到英文。大部分编程人员,都具备英语四级左右的英文基础,却由于非专业以及工作环境原因,逐渐疏远甚至完全淡忘了英语。而实际操作中,大部分编程语言资料都是英文,在线编程问答内容也是英文,因此,很有必要把英语能力重新恢复到一个不用太高但行之有效的水平,达到如下效果:

1)对自己所使用语言,每一个关键词都知道具体的英文翻译、逻辑含义以及读音。

2)对于自己使用语言所涉及到的相关方法、类库、框架、工具等,能知道其中每一个方法、过程以及参数关键词等的英文翻译、逻辑含义以及读音。

3)对常见的编程逻辑和核心关键词,能够用英文组织问题的描述,最简答的也行,只要能被搜索引擎读懂就可以。比如如何在C#中把整形转换为字符串类型这个问题,最简易的英文描述就是 C# Integer Covert To String。

4)在自己技术知识范围内的任何的英文的技术手册、文档、文章或是问题描述,能够读懂8成的内容含义,能够读懂完整的技术含义。

3、搜索方法

任何一个开发人员,都应当具备搜索能力,甚至是一定要具备搜索能力,搜索引擎的宝藏,是无穷无尽的,同样具备搜索意识的不同程序员,却因为搜索技巧的差异最终在程序开发质量、项目实施效率、甚至是工程产品质量上出现数倍的差异,因此,掌握高效、先进、灵活的搜索方法和技巧,是非常非常非常(重要的事情说三遍)有用的。其中主要的方法介绍如下:

1)搜索源选择

虽然英文的编程资料更为准确高效,但中文的编程资料数量上却占优,因此遇到问题第一搜索选择还是百度
谷歌对于专业中文词汇的处理能力有时候甚至比百度还要强,而且谷歌能搜出大量的英文资源,因此谷歌也是首选之一,但是由于谷歌被封锁,因此需要进行VPN、SSH等FQ操作,或者在百度搜索“谷歌镜像”关键词,通过谷歌的镜像网站进行访问。
除了搜索引擎,专业的技术网站、论坛、社区也是非常直接有效的搜索源,比如国外的StackOverFlow网站,国内的Cnblogs博客园、OSChina开源中国等,都具备搜索功能,将问题关键词输入其中,也许也会很快的得到相关答案。
对于QQ群,建议不要使用,除非QQ群主或者成员是非常闲或者非常非常热心的人,否则在QQ群询问技术问题,是非常低效率的搜索方式。
2)关键词构造

搜索关键词的构造,直接影响搜索效率和正确结果的过滤,没有什么特别的技巧,关键在于搜索积累,但是总体遵循的原则是,准确和简洁,比如当出现一个描述,如何用C#对XML进行序列化和反序列化,非常愚蠢的关键词构造就是“如何用C#对XML进行序列化和反序列化”,而正确高效的关键词则是“C# XML 序列化 反序列化”,或者在谷歌里面搜索则是“C# XML Serialization”。在平时的编程中,一定要注意相关方法和经验的积累

3)联想搜索

联想搜索,不属于搜索引擎的范畴,却是在搜索中很有用的高级技巧,举一个通俗的例子,比如想使用C#,利用某个.NET类处理一种HTTP通讯,但是一直搜索不到完美的结果,不过换个思路,考虑到VB.NET也是.NET体系,和C#完全相通,那么也可以试着用VB.NET关键词进行搜索,搜索到完美代码后再临摹成C#代码。这样的联想搜索,不仅能够帮助搜索正确结果,也是对大脑思维的训练,值得多多尝试。

4)资源搜索

开源的框架、产品、工具、控件等开发辅助类东西越来越多,稳健性和迭代性越来越强,去寻找一款成熟的工具或者插件,也成为了大量开发者的必备方法和技能,而如何高效的搜索出想要的资源,也成为了一门学问,其核心方法就在于知晓资源网站的地址,常见的例如有开源中国、Github、CSDN下载、pudn等。资源类网站需要平时多积累,到用到的时候会非常关键。

4、思维模式

开发人员,一定要养成业务思维的模式,所谓的业务思维,就是在做任何一个项目的时候,写任何代码前,需要对项目本身的业务概念和业务逻辑甚至业务流程都要有一个全面的学习和理解,这虽然不是一个项目的强制要求,却是一个很好的开发习惯,无论自己的觉得是开发者还是测试员又或是技术总监,掌握了业务原理,才能够更好的设计或阅读项目的数据结构和流程结构。程序员的思维往往和用户或者客户是不一致的,摆脱技术思维模式,习惯于用业务思维解决问题的程序员,不一定最优秀,但一定是一个很容易沟通的程序员

5、工作与编程习惯

有的人说爱干净浪费时间,所以不修边幅,但归根结底这还是习惯问题,当养成清洁卫生的习惯并使之成为生活惯性时,往往就不会耗费更多的时间,反而显得干净干练。写程序同样如是,有一些编程习惯,看似不足为道,看似浪费时间,可是如果坚持下去,最终都能收到意想不到的奇效。下面列举一些特别重要的习惯。

1)快捷键的使用

无论是使用Windows、Linux操作系统,还是在IDE中,快捷键都是系统本身的标配,事实上,Ctrl+C、V这样的操作,大部分人都能尝到在节省时间上的甜头,把这个概念进一步扩散,如果在IDE中编写代码,除了代码本身,将其余所有的鼠标操作、键盘定位操作,都用快捷键来代替的话,在时间上将会有数量级的节省,然而看上去这么好的事情,真正坚持去执行并形成习惯的人屈指可数,因此,在初期的改变习惯,记住快捷键,会是一个长期的过程,需要不断的坚持。

2)代码注释

一个开发人员随着年龄和经验的增长,所参与的项目,再也不是靠一个人或者几个人就能完成的。系统的重构、代码的重构、工作的交接、对新进人员的培训等等类似的事情,会越来越多的遇到,这些事情无一例外都会把已经写过的代码重新或者重复阅读,如果在初始编写代码时,就做到完整、清晰明了的代码注释,对后续工作会有巨大的帮助。不仅提高工作效率,还能增强合作好感。事实上,就算只是自己看自己的代码,如果有注释,也能加深印象,缩短代码查找时间。因此,任何开发人员,都应该养成良好的代码注释习惯。

优秀的代码注释应该能做到:

每一个函数、每一个属性甚至是变量的划分,都可以找到对应的解释。
多使用越来越被IDE支持的XML注释方式,不仅有注释文字,更有详细的参数描述。
对程序结构、模块、组成部分划分等也加以注释
3)命名规则

具备一定规模的软件公司,在代码编写上都有一套自己的命名规则,涵盖项目、模块、函数、变量等等,标准化命名的好处不言而喻,然而被动、被迫去遵守命名规则和主动习惯于使用命名规则是完全不一样的。一个优秀的开发人员,应当发自内心的希望各种代码命名都是有规则的,易读的,而不是纠结于命名规则会增加码字长度。

4)不将就的编程逻辑

所谓不将就的编程逻辑,其对立面就是不讲究的编程逻辑,不讲究的编程,不仅是一种很坏的编程习惯,也体现了低下的生活品质,很多开发人员,因为个人习惯、赶工期、客户要求不高等多种原因,在编程时特别随意,体现在比如为了实现某个功能,百度出一段代码,直接套用,10行的代码只理解8行,有两行看不懂也放到程序里去使用,很多这样的小细节,就好比在项目中埋下了无数的定时炸弹,不仅有很大概率形成返工,更是为项目埋下了风险。编程人员,应当有担当有态度,养成不将就的编程逻辑,不勉强自己,也不轻视程序。

5)数据备份

误删、误操作、电脑断电、文件遗失等等状况是每一个开发按人员都可能遇到的问题,如果不希望辛勤的劳作被浪费,不希望偶然的意外影响工作,那做好备份是必不可少的,在较大规模的公司,会有完整的源代码管理以及信息安全防护,而无论是在大公司工作,还是身处较小公司或者在实现个人代码价值时,都要做好代码和文档的数据备份,备份方式的选择灵活多样,有使用在线的CVS、SVN、TFS、Git源代码管理,也可以手工拷贝文件至云空间或者本地硬盘,甚至可以在个人电脑上组成RAID磁盘阵列等等,养成周期性、规律性的备份习惯。

6)邮件工作方式

沟通是进步的源泉,如果说开发小组的热烈讨论是性格和激情的体现,那邮件的工作方式也是另一种稳重和高效。无论是公司层面的工作沟通,还是开发小组的问题交流,邮件的作用包括问题正规化描述、工作留档留痕、工作流程流转、责任分工明确等等,习惯于将重大问题、重要事项通过邮件的方式与同事、主管等进行沟通,将会非常有助于团队协作。

以上这些方法,是我这么多年来的感受和体会,也给了我很大的帮助,希望也能够帮助到大家,不能说一定可以“提升修养“,但也是”提升修养”的有效方式。

最后还想再说一说坚持的力量

分享一个真实的小故事,公司有两个开发人员,1个做.NET好多年了,但是很油滑,做事能省就省,抓到可以偷懒的机会就偷懒,让他学点新知识新方法总是自以为是觉得自己都会;还有1个毫无.NET基础,一直做低级语言开发,从15年才开始学习.NET和Web前端,但是做事很积极,几乎每天都自己抽空学习,遇到不懂的都琢磨清楚,遇到不会的场景就上网或者找人寻求帮助,项目结束后还反复思考有什么地方可以改进。从15年到现在,短短1年,这两个人的发展已经是天壤之别,工资差距也越来越大,后者已经能够独自操盘中小型软件外包项目,而前者还在混着日子,以后他们各自的发展也完全可以预见。

我想说的是,本篇里面分享的一些道理和方法,都是通俗易懂的,就和常听到的例如101%和99%的365次方的故事、1万小时的道理等等一样,但真正去认真思考并实践的屈指可数,也许,坚持才是程序员最大的修养,和各位共勉!

大利猫 回复

谢谢你的分享,“坚持才是程序员最大的修养”,很赞。坚持、专业、求精这些都是匠人的修养。。。

lulu036 回复

感谢分享!受益匪浅!

像一句广告 回复

总结到位

般度五子 回复

感谢分享,看来基础还得好好复习

聚小编 回复

不错的分享,贵在坚持。回复的内容可以发到我们社区的博客里哦~~

linerdi 回复

谢谢分享,获益匪浅。

评论
2

我叫石头 已获得优酷VIP季卡 复制链接去分享

在一家小公司工作了快两年的时间,我犯的错误也是同龄人的两倍。
我认为[ 出现错误并不可怕,而出现错误不能及时修复和下次出现同样类型的错误才可怕。]
是这些错误的累积让我走到了一个很高的职位。
同时在线下也要多参与一些oschina,csdn等等的交流会,对自己也会有一定的帮助。
需要掌握 破窗户 理论思想。

同时我很赞同@我的中国说的一句话:[作为一名研发人员,我们无法把控产品的战略方向和命运,唯一能做的就是把代码写成诗,每一个版本都是一篇有鉴赏价值的文章,尽量做出一些技术亮点。能做到这些,就算产品濒临死亡一样能激情满满]。
每个开发写的代码都有你可以学习和进步的地方。
在产品和运营的需求中,要会取舍。因为你,并不是一个只会码代码的程序猿,要做有思想的研发攻城狮。

小象陆巍 回复

佩服,有这样的精神肯定能成长

狂舞世间 回复

想说的话,不知道为什么不能发表。总之,向大家学习。

鹰眼2 回复

每个产品刚出现都要适应。只是时间而已。我能进人证明我也能适应。

rapidsnail 回复

有见解,其实干那一行都需要这个

我叫石头 回复

谢谢支持,抱歉这么久看到才回。

我叫石头 回复

谢谢@大利猫 的支持。

评论
1

1782936615934902 复制链接去分享

物联网时代,全栈工程师真的很累,软件和硬件都要弄。物联网专业的同学是否有同感?

大利猫 回复

写篇文章好好介绍下物联网编程体验呗,很多人想入坑。

codefamers 回复

物联网专业的飘过

物联网菜鸟 回复

很想了解你物联网编程的经历,本人是物联网一个新生

linerdi 回复

请挖坑

stanel1 回复

电子工程师 转了ios 自做简易物联网 水族方向...设计pcb..软件编程..后端..数据库.web...感觉面太多...不停学

评论
1

西秦说云 复制链接去分享

对于程序员来说,考研和大公司工作经验哪个更好?[Bat级]

聚小编 回复

你这个不冲突呀,现在大公司门槛越来越高了,很多毕业生考研就是为了进大公司呢!

大利猫 回复

读研还是带着目的去吧,如果自己都没想清楚为什读研究生,我不建议读。

周老汉 回复

工作经验

西秦说云 回复

就业为目的呢?

聚小编 回复

那就毕业先就业,可以再慢慢学。积累了工作经验,再去深造

乔布斯之魂 回复

进BAT级的公司,实战必学习重要。

评论
3

夜晚才最美 复制链接去分享

我是一名大4机械学生 因为喜欢网络接触网络才自学 至今还是一名菜鸟 最开始学习是html css js网上学习 但是很难接触到专业的课程 又不想去机构被坑钱 只有自己买书看视频一步步摸索过来 我觉得最大的障碍对于我们这些跨专业0基础的学生 就是一个系统的自学规划 权威的知识目录。

夜晚才最美 回复

学了一年多的 学的东西很杂 很难用到实际解决问题中 毕竟免费的教程也不多 比如seo 这种理论成立却没有权威的知识 用起来又不知道对错 让我感觉很尴尬

不为人知 回复

web前端开发 自学的话在阿里云课堂就有

z605 回复

同机械,从开始的虚拟主机建站到后来的linux服务器 到运维,很艰辛 很充实 。 自学更快乐~

昨天在明天 回复

同机械转行半年飘过

评论
2

猫小妖 复制链接去分享

我是一个女程序员,一年工作经验,到了大公司进了一个偏业务的组,虽然自己平时注意技术的积累,但是10月份面试阿里达到了P5,最终由于复杂项目经验少被拒,基础我可以自己去补,可是如果公司没有复杂的业务是不是意味着就没有希望了

大利猫 回复

阿里社招都从 P6 开始的,看来你基础还是不错的,项目经验可遇不可求。平时多注意技术深度总结,多出去和其他猿猿们交流。

猫小妖 回复

谢谢您,我打算好好准备一年,明年再试一次

大利猫 回复

加油

评论
3

yrccondor 复制链接去分享

我是一个高一的学生,从初一踏入码农的世界开始已经四年了。我不是一个大神,因为学习的原因也不可能是,最多只能算入了个门吧。
但正是学习的原因我也自己总结出一些经验。最重要的是一定要分配好各种时间,何时学习,何时练习,何时上机实践,都要进行合理的时间分配。这不仅能提高效率,还会有一种学习的动力。
上面说了一些其实是学习的方法,这也就默认了自我提升的方法其实就是不断学习。规划好自己的学习路线也是非常重要的一点,然后便要到各种地方寻找资料。善用好google和百度,逛逛csdn,没事就翻翻github,扒下别人的代码分析临摹,都是提升技能的好方法。当然最好的就是自己立一个小项目写写,有了目标才会有动力。
差不多入门之后,需要做的就不是让自己变得更熟练,而是去学习思想,如何让代码更简洁,效率更高,都是需要不断练习的。
这都是我自己总结出来的一些经验。虽然我一不小心在乱学一气,从web到桌面都学了(笑)。当然比我厉害的大神一抓一大把,我也在继续探寻一条路让自己变成大神。还是要说,加油啊!

tznlovemsx 回复

挺厉害的

游讯 回复

意识很重要,高一都已经摸爬滚打这么多年了!

评论
0

方糖科技 复制链接去分享

主要还是凭对相关方面的兴趣,然后找度娘,最后打一遍验证一下

大利猫 回复

请用谷歌

聚小编 回复

秒懂^-^

mitnick_wang 回复

请用谷歌

stanel1 回复

打多点...然后思路基本差距不大..一般情况下 我们都是处理业务逻辑 而已

评论
1

妙正灰 复制链接去分享

作为一个菜鸟,在初学的时候,经常遇到疑惑就是:
书上、文档上的东西,自己敲一遍比较好,还是看得懂的就不要敲了。 但是看不懂的即便敲了依旧不懂。

砸破

第七科 回复

多去跟大牛交流 网上有经验的不少

大利猫 回复

很多人即便能通过书籍或搜索引擎把功能实现了,但是依然没有深入理解其中原理。很多新生(包括我自己有很长一段时间的这种经历)都会有这种误区:实现了就以为自己掌握了。我觉得实现功能是一个层次;有时间一定要回去总结下知识点,对涉及的某一个点你可以系统深入研究下(可以找一本书),这是第二个层次;第三个层次,你必须去项目中去解决各种问题,特别是解决疑难杂症,也许解决一个问题你就能深挖出一堆东西出来;如果可以你可以总结下你的这个功能业内通常是怎么实现的,你是怎么实现的,差距在哪里,从行业角度一审视一个知识点,这是第四个层次。

聚小编 回复

那就多来聚能聊吧

评论
2

菠菜树 复制链接去分享

在小公司做码农,做着做着发现同事都离职了,最后啥活儿都是自己的,但活儿是干了,技术没啥长进。
我也是自己给自己找接口,
但我还是想吐槽下现况,求指点。
业务方面,需求变得快要的急,而且他们只要求能实现。然后我就给自己挖坑,各种代码各种改,没有时间优化。有空想给整整,然后新的需求又来了。。。😥
最开始的CTO做JAVA,给整来一套框架,感觉封装的不错。后来换了PHP来做CTO,有个项目来的急,大部分接口是我用java写,简单的查询和前端是他用php写,然后他走了,我就傻逼了,只好学PHP然后维护下,等有空还是得换成jsp。
还有,数据库在设计时不同语言是不是风格不一样?看见两个前任CTO设计数据库的风格,把我搞蒙蔽了,现在自己设计表各种纠结。
现在公司后台就我一个,域名备案、服务器相关都是我,感觉忙不过来,跟打杂的一样。但我坦诚,公司给的要比以前多两千。
其实我是转行做码农一年,各方面能力欠缺
,现在想学技术,但是感觉公司的任务已经压满,也不能拿公司的业务做一些新技术的尝试。我现在很茫然,不知道怎么办,究竟怎样才能让自己更强,我该在哪些方面改变才行,要不要换公司?求指点,谢谢

大利猫 回复

第一:需求变的很急,框架换得快。自己很累。
第二:你觉得业务太杂,不知道怎么从繁重的业务中磨练技术。

很多人都有这种感觉,首先你要调整心态,这种情况很正常。然后你要问自己,在这里做事的目的是什么?
无非就两个目的:
1 把业务做好了,升职加薪。
2 提高自己技术和能力。

第一个目的不好把握,我们把重点放到第二个目的来吧:提高技术和能力,处理复杂变化的需求也是一种能力,你应该好好总结下,对于各种业务需求使用什么养的技术框架,你有没有自己的见解,你有没有想过说法你的老大,这就需要你同时具备技术功底和沟通能力了。这些都是你要提高的地方,你能提高么?
我之前写过两篇文章推荐你看一下,或许会有些参考价值。
《程序员的修炼之路》,
《程序员的运气有多重要》

菠菜树 回复

嗯嗯,您说的对,我们无法把握升职加薪,但可以提高自己。我现在的思路是,提高工作时的效率,多拿出时间去解决自己在工作中遇到的问题,研究需要我去深究的问题。或许,我还应该努力将工作和生活剥离,这样我才有属于我的时间去学习我想学的东西。
今天公司经理问我还需要哪些东西才能够让我成为一名及格的CTO,然后我就傻了😨,感觉差的应该是经验吧。。。
潜心修炼,终有得到之日,哈哈哈💪
感谢您的回复,谢谢😊

评论
0

是奇偶号 复制链接去分享

作为一个高二单身狗的我热衷与各种编程语言,从初二开始就到处自学,加qq群,找视频看,但是到了最后也没有学到点什么。我总结了一下:
1.目标定的太高(初三的我目标是3个月学完java与html)
2.三分热情,说凉就凉(给自己定下的任务一直拖着)
3.被互联网上的编程教程之类的推广所迷惑
以上说的就是我咯,现在高二了,对web方面很痴迷,现在的目标也就是web方面的了,每次一有想法就去付出行动,这样学的,记得也很快……
现在的我比较成熟了,没有那种一口吃成胖子的心态了,与我共勉吧。

大利猫 回复

你让我感到“后生可畏”,真羡慕你这么年轻就在入门了。我这个年纪的时候还没碰过电脑。我建议你打好理论基础。

mitnick_wang 回复

建议 先从基础开始,计算机编程原理、计算机网络、编译原理等等,在开始学代码

评论
0

junit 复制链接去分享

我是一名孤独的程序员,有时候都不敢说自己是个程序员,好几年了,总是不知道自己到底是个什么水平,这个工作虽然都被称为程序,可你知道你学的或者用的只是很极限的一部分而已,很少人能掌握绝大部分的程序语言,从很早开始zencart、ecshop开源开始做php的程序开发,到现在自主开发各类网站、微信,webapp,可以说自己有时还是比较自卑的,感觉程序员就那么回事,没有多么的神圣,虽然现在随便就能开发个系统,但是总觉得对应深层次的东西了解的还不够多,不够细,人的精力真是有限,不可能什么都学,什么都做,马上要到30这个坎了,虽然已经有了自己的公司,但是还是希望自己能有更大的突破,大家相信程序员能做一辈子吗?

大利猫 回复

同样的孤单感和危机感

若愚 回复

在国外能敲一辈子代码的人还是很多,国内年过30就可能要面临转型或者转业,国内程序员很多人做程序员都不一定是兴趣,因为年轻能熬夜,能承受更大的工作压力来换取同等或者不同等的报酬,作为一名程序员感慨失去的太多。。。

评论
1

landhouse 复制链接去分享

工作之中垂直深入,工作之外更像扩展,学习学习快速深入学习!

大利猫 回复

总结的非常到位

评论
1

千罹 复制链接去分享

对于毕业刚满一年(到2016.10)的我,开始找工作算是比较困难的。也不能说是困难吧,只是花了很长时间,大概1个多月,纯粹的找工作投简历。那时觉得很开心,并不那种走投无路或者忧心忡忡的感觉。因为每次面试都能接触不同的人,不同的hr,每次都会对自己的价值有更好的评估,也能学到实际的东西,比如hr是人事,vp是经理,嗯,应该是这样吧。所以,找工作不是终点,不要气馁。
现在,在一家国际化的企业攻城,能跟着团队学到很多东西,新的朋友,新的技术。我觉得这很重要!有的同学在非常大的企业里做一个小职务,比如整天的插入数据库,做数据封装啦,那种没有全局概念的工作。等过了1,2年想换工作了,发现自己这些年,其实没有什么技术成长。
对于项目来说,影响我们成长的,我觉得有很大程度上是项目的架构。首先,架构是不易变化的。尤其是一些不合理或不能适应发展的架构,导致项目跟不上新需求和新技术。结果就是,在技术飞速发展的今天,有的同学可能还在为昨天打无数的补丁,把自己囚禁在过气的技术时代里,等到接触外边的风气,发现自己格格不入。我觉得老话说得好,学如逆水行舟,不进则退。尤其是技术领域,绝对是不存在铁饭碗的。所以,我们毕了业还是得继续学习。只不过,不是死背,是灵活运用,这种学习对我来说是非常有乐趣的。ps:在学校里我可是学渣哟:P

多谢大家能看了我的几分感悟,请多指教^_^

大利猫 回复

加油

评论
0

heangdapeng 复制链接去分享

想想入行也只有一年,发现理论还是要靠实际操作去寻找答案,多学多看多写demo,多多总结多多分享…

大利猫 回复

加油

it_engheng 回复

多做项目 汲取精华

评论
1

第七科 复制链接去分享

产品不温不火,怎么提高激情?公司里成天没有干劲

我的中国 回复

[作为一名研发人员,我们无法把控产品的战略方向和命运,唯一能做的就是把代码写成诗,每一个版本都是一篇有鉴赏价值的文章,尽量做出一些技术亮点。能做到这些,就算产品濒临死亡一样能激情满满]

 在我的记忆中,第一次真正体会到编程的激情是在我开始十分关注代码开始的。在团队中进行 code review ,细到品味每个方法名、每个变量名的命名艺术,长此以往,你会发现你一些思维细节上的变化,收获很大,当你做一件事情已经上升为艺术自然就会激情满满;另外,作为研发,我们应该更加关注我们在做事情的过程中获得的修为、技能,而不要过多去关注这个产品到底能不能火爆,因为这个你无法把控,全看运气,至少我是没碰到过这样的好运气,但是这些年来我对编程这件事是越来越有激情、一直在进步。
zhangmeng 回复

同意哈!~
更多应该从自身的成长来考虑,专注自我的成长和完善才是最主要的。从工作中能够学到东西,有所积累才是我们需要去关注的,是在没有干劲,那换个环境也是未尝不可的。

评论
0

bondoir 复制链接去分享

我上大三了,只能说兴趣是给我学习下去的最大动力,首先就是确定一个学习的方向,这个是最重要的,一开始根本不知道要学什么,就开始看各种社区,论坛里的心得,我高中学的C语言和C++,但是是自学,没有系统性的学习,所以学得特别杂,后来开始接触了ACM,这一块对程序猿的思想都有很大的作用,新手可以通过ACM提高算法能力,后来我又学了JAVA,会了点网络编程和windows编程,这时候能做的东西就很多了,已经差不多能独立开发简单软件了,后来在Github,csdn还有其他论坛中接触了各种各样的大牛后才发现自己是多么的渺小,然后在大牛们的介绍之类,又接触了linux,开始从慕课网之类的网络课堂学习MySQL,PHP,Spring等等,越到后面我反而越迷茫,感觉不知道自己究竟要走哪一个方向了。
后来我和同学接了一个建站的单,他做前端我做后端,从一开始的一头雾水到后来的初具模型,到最后的发布验收,碰到了很多问题,真的就是靠百度找问题找答案边做边学做出来的,虽然感觉代码写得很烂,但是最后还是完成了全部功能(就是到现在为止钱还没到位),所以做项目是提高编码能力很重要的,当有自己想做的项目后,自然而然地会去学习相关的知识以提升自己。马上要成为一个程序猿了,我还是赶紧用项目堆经验吧😄

大利猫 回复

一定要回头总结,项目经验在于精,不在多

评论
0

游讯 复制链接去分享

马老师一直是我的偶像,这次的杭州云栖大会算是完成了自己的心愿。会上了解到了阿里云在飞天和yunos上的成果,在开源项目上作出的贡献,在中国科技走向世界作出的努力。
只是自己的初心不在开发和代码,如何在IT-DT背景下打穿一条创业之路,用代码的艺术来证明创业的价值!
欢迎各位留下自己的看法!

大利猫 回复

你要创业?

游讯 回复

现在感觉一无所有,还是要先沉淀自己。

评论
12