`
rensanning
  • 浏览: 3548766 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38151
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607316
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682340
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89355
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401856
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69695
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91723
社区版块
存档分类
最新评论

程序员如何不断提高自己?

 
阅读更多
没有超人,关注该关注的即可!

(一)
如果遇到问题,先Google一下 https://www.google.com/,或者Bing https://www.bing.com/
解决问题的顺序:查看日志->官方文档->Google英文或Bing英文->Stackoverflow->Github->查专业论坛->查看源码->问人->发帖。

如果有Error Log,可以尝试直接Google一下Log内容,99%会在搜索结果页中看到StackOverflow http://stackoverflow.com/的(基本在第一页很靠前的位置)链接,看看它基本上就能解决问题。

如果需要使用开源项目,就去GitHub https://github.com/ 搜索一下star大于1000的,基本会有符合的解决方案,不会搜索直接看Awesome列表 (awesomeawesome-awesomeness)。

如果在多个开源方案之间犹豫不决,最好去Google一下“AAA vs BBB”,很多好心人会详细说明他们的pros/cons。

(二)
茶余饭后,可以翻翻知乎 http://www.zhihu.com/ 或 Quora http://www.quora.com/

如果时间充裕,喜欢泡社区,可以去SegmentFault http://segmentfault.com/  或 V2EX https://www.v2ex.com/

如果时间不多,可以关注简书 http://www.jianshu.com/ 或 Medium https://medium.com/

也可以听听Podcast,比如Teahour.fm  http://teahour.fm/、内核恐慌 http://ipn.li/kernelpanic/、IT公论 http://ipn.li/itgonglun/、比特新声 http://www.bitvoice.xyz/
虽然电子书、视频、音频可以打发碎片时间,但是由于获取更容易数量太多以及质量的问题,反而会浪费时间。

(三)
如果喜欢分享,自己开个Blog记录一些值得记录的东西。可以搭独立域名,可以用GitHub Pages https://pages.github.com/,也可以在这些博客网站申请个Blog,比如:CSDN、cnblog、iteye、51cto。

如果爱刷微博,关注一些技术相关的账户他们会推送很多有价值的东西。

如果爱看微信公众号,关注一些技术相关的公众号。

(四)
如果想知道最近大家都在讨论什么,每天抽一点时间看看 极客头条 http://geek.csdn.net/ 或 开发者头条 http://toutiao.io/ 或 HackerNews https://news.ycombinator.com/

如果想知道最近出了哪些好的产品,每天抽一点时间看看ProductHunt http://www.producthunt.com/ 或 DEMO8 http://www.demo8.com/ 或 最美应用 http://zuimeia.com/

(五)
如果关注前沿科技资讯,看看36氪 http://www.36kr.com/、PingWest http://www.pingwest.com/ 或 TechCrunch http://techcrunch.com/、Reddit https://www.reddit.com/

如果关注前沿技术,看看SmashingMagazine http://www.smashingmagazine.com/、Mashable http://mashable.com/、ReadWrite http://readwrite.com/

如果关注用户体验设计,看看 站酷 http://www.zcool.com.cn/、优设 http://www.uisdc.com/、盒子UI http://www.boxui.com/ 或 Dribbble http://dribbble.com/、DesignerNews https://www.designernews.co/、ThemeForest http://themeforest.net/

如果想找设计灵感,去EnvatoMarket http://market.envato.com/搜搜看。

(六)
如果想看看最近大拿都分享了哪些好的PPT,看看SlideShare http://www.slideshare.net/、SpeakerDeck https://speakerdeck.com/、Prezi https://prezi.com/explore/staff-picks/

也可以去Slides http://slides.com/制作自己酷酷的Slide。

(七)
如果时间管理比较紧,就订阅一下相关的日报周报吧!
(八)
如果偶尔很迷茫,不知道干什么,刷刷题吧:
基础:Mega Project List 中文版
算法:LeetCode Online Judge
设计:Daily UI Design Challenge

(九)
如果工作觉得无处下手,可以从开源项目入手,比如:
-- Blog(WordPress、Octopress、Ghost)
-- Forum(Discuz!、Discourse、Flarum)
-- Wiki(DokuWiki、Gollum)
-- Groupware、CMS、eCommerce等。

(十)
如果想深入学习,不放看看规范标准定义,比如:
-- IETF的RFC
  HTTP1.1协议 http://www.ietf.org/rfc/rfc2616.txt
-- W3C
  HTML5标准 https://www.w3.org/TR/html5/
-- Java的JSR
  Servlet 4.0规范 https://www.jcp.org/en/jsr/detail?id=369

或 维基百科 https://en.wikipedia.org/

《程序员必备技能》

(1)软技能
a> 英语(FQ):开发语言、官方文档、技术书籍、技术社区、Youtube视频等
a> 善用搜索引擎
a> 善于归纳总结(side project/code snippet)
a> 编码习惯、工作节奏效率
a> 时间管理(情绪管理)
a> 阅读好书、博客、源码:不要看速成书,比如:xx天精通yy
a> 社交互动(参与开源、尝试帮助别人)
a> 口头或书面交流(结伴讨论、参与代码评审)
a> 解决问题的能力(性能问题、内存问题、并发问题等):不要轻易发问!
a> 搞清楚工程还是科研
a> 保持好奇心(广泛<->专注):系统的学习 vs 边用边学
a> 业余时间应该提高自己的知识、技能、经验并实践自己学到的东西
a> 减少相似项目,掌握核心技术
a> 深入理解开发语言,比如Java的JVM,JavaScript(this、CommonJS、IIFE、Event & Event Delegation、Prototype Chain & Inheritance、Scope Chain & Closure)
a> 关注自己感兴趣的技术而不是流行的技术:一万小时定律虽然不假,但是99%的人不会成为专家
a> 是否有必要Full-stack?(前端、后端、测试、DBA、运维、移动应用、云服务、大数据等)

You can't know everything about everything.

扩展阅读:
16 Don'ts of Career Growth
7 Things I Learned That Made Me a Better Programmer

(2)技术技能
a> Linux基础
a> HTTP协议
a> 脚本语言、编译语言各会一门
a> 开发语言的基础(比如:多线程、I/O、网络、集合、泛型、注解等)
a> 关键领域
  数据结构、算法、JVM/GC、JavaEE组件(JSP、Servlets等)
a> 开源框架
  Web(Spring MVC)、IoC(Spring, CDI)、ORM(Hibernate、MyBatis)、容器(Tomcat)
a> 编程原则(Principles)
  S.O.L.I.D
  DRY (Don't Repeat Yourself)
  OCP (Open Close Principle)
  SoC (Separation of Concerns)
  IoC (Inversion of Control)
  CoC (Configuration over Convention)
  http://rensanning.iteye.com/blog/2095194
a> 编程方法论(Methodologies)
  MVC(Model-View-Controller)
  OOP(Object-Oriented Programming)
  AOP(Aspect-Oriented Programming)
  FP(Functional Programming)
a> 设计模式(Patterns)
  GoF Design Patterns
a> 软件架构(Software Architectures)
  SOA (Service-Oriented Architecture)
  MSA (Microservices Architecture)
  N-Tier Architecture
  Event-Driven Architecture
  Plug-in Architecture
a> 项目管理(Project Management)
  Waterfall、Agile (Scrum、XP、Lean等)、PMBOK
a> 编写clean代码、重构代码、优化代码、调试代码
a> 编写测试用例
a> 编写有效日志
a> 尝试独立搭建各种开发环境
a> 尝试独立实现各种数据结构、算法
a> 尝试独立实现一个完整的系统
a> Web开发需要熟练使用浏览器及常用插件

附A:获取知识的途径
书籍
     -纸质(专业杂志)
     -电子书(文档)
网络
     -社区(论坛、官网、搜索引擎、社交网路)
     -博客(公众号)
视频
     -MOOC(Podcast、Youtube)
     -录制
培训
     -线上(MOOC、微课)
     -线下(培训机构、企业内训、分享交流、面对面交流)

附B:日文技术网站
https://gunosy.com/
https://www.smartnews.com/
https://codezine.jp/
http://b.hatena.ne.jp/hotentry/it
https://qiita.com/
https://eventdots.jp/
http://dotinstall.com/
https://codeiq.jp/
http://www.ne.jp/asahi/hishidama/home/tech
http://d.hatena.ne.jp/nowokay/
http://rebuild.fm/
http://uxmilk.jp/
2
0
分享到:
评论

相关推荐

    CHATGPT出现,低端程序员应该怎么办?

    随着人工智能技术的不断进步,特别是自然语言处理技术的快速发展,聊天机器人CHATGPT已经开始在很多领域得到应用。然而,有些人对于这种技术的发展感到担忧,尤其是低端程序员。他们担心,随着CHATGPT等人工智能技术...

    什么样的人适合做程序员?程序员应该具有什么样的素质程序员四大禁忌

    在遇到挫折时,他们应该首先反思自己,找出问题的根源,然后努力改进,这样才能不断提高自己的编程能力。 总之,成为一名优秀的程序员,不仅需要具备耐心、毅力、细心和勇于挑战的品质,还需要保持谦逊、热情和自我...

    程序员如何上位?

    通过以上这些策略,程序员不仅可以提升自己的技术能力,还能增强职场竞争力,逐步实现职位晋升。记住,德才兼备是在职场上获得认可的关键,同时保持谦逊和开放的心态,不断学习和成长,才能在程序员的道路上走得更远...

    程序员如何提高英语水平.pdf

    针对程序员提高英语水平这一课题...通过实际工作中对英文资料的阅读与应用,日常交流中的实践,以及在英语文化环境中不断地学习和适应,程序员可以逐步提升自己的英语水平,从而在国际化的技术领域中拥有更强的竞争力。

    框架会使程序员变笨吗?

    ”这个问题探讨的是编程框架在提高开发效率的同时,是否可能降低了程序员的技术理解和创新能力。面试场景中,面试官通过询问关于Spring、Hibernate和RESTful服务的问题,揭示了一些应聘者虽然熟悉框架的使用,但在...

    Java程序员应如何做职业规划?.docx

    3.技能提升: Java 程序员需要不断学习和提升自己的技能,满足职业发展的需求。 4.自我反省: Java 程序员需要不断反省自己的职业发展,了解自己的优势和弱点,调整自己的职业规划。 Java 程序员职业规划的类型...

    程序员如何提高效率(转)

    技术领域的快速发展要求程序员不断更新知识体系,掌握新技能。通过阅读专业书籍、参加在线课程或参与社区交流,可以拓宽视野,提高解决问题的能力。同时,了解最新的编程语言、框架和技术趋势,有助于提升工作效率和...

    作为一名程序员,如何丰富自己的知识,怎样提高自己的水平

    作为一名程序员,如何丰富自己的知识,怎样提高自己的水平。作为一名程序员,需要不断丰富自己的知识库。

    程序员职业规划:让自己变得重要

    综上所述,对于程序员而言,要想在激烈的竞争环境中脱颖而出,就必须采取主动策略,不断优化自己的职业路径。这不仅包括选择合适的技术方向进行深入研究,还需要注重个人品牌的塑造和社会资源的积累。只有全方位地...

    程序员之路探究

    程序员需要在职业生涯的早期阶段就开始探索适合自己的发展方向,并且不断地根据自身特点和市场变化做出调整。 此外,文档还提到了程序员在技术深度上的追求,即成为某个领域的专家或者在技术上有自己独到的见解,...

    程序员的一生(一个牛人的自白书)

    程序员的一生 作为一名专业的 IT 大师,我将从给定的文件中生成相关知识点,并提供详细的解释。 程序员的一生 ...作为一名程序员,你需要不断思考自己的性格是否适合这个职业,并不断提高自己的技术和能力。

    程序员的未来

    因此,中国程序员需要不断学习,提升自己,不仅仅满足于客户需求,还要站在更高的层次思考程序和代码应该如何服务于社会和世界。 综上所述,程序员的未来需要我们不断学习和适应新技术,同时要具备创新能力和理论...

    怎样才能快速的成为一名高级程序员呢?

    要成为一名高级程序员,尤其是专注于Web开发领域的专家,你需要掌握一系列技术和方法论,并不断提升自己的技能树。根据提供的文件信息,我们可以将关键知识点归纳为以下几个方面: ### 一、基础编程技能 1. **脚本...

    程序员的八重境界

    文章不仅对程序员的各种层次进行了细致入化的划分,还鼓励每个从业者明确自己的目标与定位,追求属于自己的那份价值。 #### 八重境界详解 ##### 第一重:Bad Programmer - 糟糕透顶 **定义:**这一层指那些完全...

    ChatGPT火遍全球, 为啥程序员还要继续学习C#?

    ChatGPT,一款由OpenAI开发的...程序员应以开放的心态接纳新技术,同时巩固和提升现有技能,如C#,这样才能在不断变化的技术环境中保持竞争力。因此,即使ChatGPT风靡全球,程序员继续学习C#依然是明智且必要的选择。

    程序员第二步:从程序员到项目经理

    针对文件信息,接下来的内容将基于“程序员到...最后,从程序员到项目经理的转型不仅需要不断学习新的管理技能,更需要在实际工作中不断实践和积累经验。只有通过不断的尝试和反思,才能真正成为一个优秀的项目经理。

    程序员的个人发展

    通过不断克服技术难题、阅读新书、与他人交流和深入了解行业动态,程序员可以不断提升自己的技术水平。精通一门技术不仅仅是掌握技术本身,更重要的是学习和研究的方法,以便于触类旁通,适应技术的快速变化。 对于...

    程序员(程序员受益终身的文档)

    这些软实力的提升不仅能帮助程序员在职场上更好地展现自己,还能促进团队和谐,提高整体工作效率。通过不断学习和实践,每位程序员都可以成为更加全面、成熟的IT专业人士,为职业生涯的发展奠定坚实的基础。

    程序员个性电脑桌面壁纸

    他们善于解决问题,喜欢挑战,不畏艰难,正如描述中所提到的“逆境使人成熟,绝境使人醒悟”,在面对复杂问题时,他们会从中寻找解决之道,不断提升自我。这种坚韧不拔的精神,是程序员文化的重要组成部分。 其次,...

Global site tag (gtag.js) - Google Analytics