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

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

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

(一)
如果遇到问题,先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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics