程序员自述——2019新年篇

时间:2022-03-28 14:08:29

1、真正的程序员是个什么样的人?

  程序员是一个简单、纯粹的人,他们看起来简单,做起事来一样简单,干净简洁、不拖泥带水,让人看起来就觉得很“干净”的那种,他们衣着打扮简单,但从不邋遢,他们追求严谨高效甚至完美,工作中他们可能说话不多,但很少说废话,只讲重点,说起话来很有逻辑性,习惯分条列举做答。生活中他们或许有点儿宅,但偶尔也会幽默和浪漫,并非真的不懂交流和沟通。总之,程序也是人,而且是个很简单、纯粹的人。

2、程序员需要哪些基本能力?

  (1)【学习能力】程序员并不需要智商很高,普通本科理科毕业生基本都能胜任该项工作,但学习能力是必不可少的,对于任何行业都是一样的,学习并不代表天天看书,对于程序员而言,看书是最基本的,实际操作才是关键,而且学习能力从不单指技术,沟通、合作、管理、生活等各方面的都需要学习

  (2)【分析总结能力】程序员需要有对大量数据进行分类整理和归纳总结的能力,提炼出最简单的、最核心部分,因为他们需要学习很多,如果不会分析,并加以归纳总结,他们迟早会崩溃,大脑虽然有自我整理能力,但需要的时间很长,所以我们需要通过分析归纳去协助它的整理

  (3)【结构化表达能力】你懂得多不代表别人也能明白你的想法,研究表明人们的语言接受能力大概在20%作用,也就是说你要让别人听懂,同一句话至少得重复3-5次,别人可能才能明白的你要说什么,这甚至不包括怎么做,而结构化表达能将这种效率提高到50%左右。程序员不会写程序或者写出来的程序BUG很多,很多时候是因为接到需求时需求描述太散乱、没有按顺序和层次进行整理,反馈需求时别人也没听懂你说的,然后形成恶性循环,耐心差的开发和需求人员就这样干架了。

  (4)【严谨、专注、理性】严谨的指的是不要一味的赶进度,而忽视质量,制作“表明OK交付产物“,不严谨就意味着BUG,也意味着维护成本的提高,越大的公司应该越避免这种赶进度的做法。即便当时应急,后期也该留给程序员时间去优化和完善不严谨的代码。写代码效率低很多时候来源于两点,无法专注和疲于应对,所以造就了一批人白天形式与政策、夜晚加班写代码,但这并不能根治问题,只会更加的低效率、高疲劳,所以如何让自己进入高度集中的工作状态是最程序员的考验。至于理性是什么?你的周围总会存在部分未经分析事情就开始滔滔不绝的人,他们地位不低,习惯了用经验”指导“他人,但写程序的最终是你,他们的”指导“意见你自己当理性思考,仅供参考,合理采纳,当然前辈的话可能并没有错,只是用错了场景,这是需要你理性认知的,而不是盲目执行。

  (5)【团队协作管理能力】对于团队开发来说,规定和统一高于自我,但如何规定和统一标准需要团队共同思考,也需要具有管理经验的人员进行维护。

  (6)【与时俱进能力】三点——兼容、稳定、超前,啥意思?举例:当前主流版本为JDK1.8,那我需要熟悉Jdk1.7(兼容,最新版-2), 精通Jdk1.8(稳定,最新版-1),学习Jdk11(超前,最新版)

3、程序员如何选择一门开发语言?

  最经典的、最实用的、最适合的!

  推荐——Java&&C/C++  目前最适合作为主要编程语言的两种,且互补;Python 目前最适合作为辅助编程语言的一种脚本, Shell && Bat 目前主要方便Linux&Window系统使用的脚本。

  如果是搞网络方面Java就是最适合的,如果是底层系统核心方面C/C++就是最适合的,如果是运维方面Python就是最适合的。

4、如何选择软件工具?

  桌面系统推荐——Window10(推荐,标配8G内存)、Window 7 (熟悉,标配4G内存)、Window XP(了解,标配2G内存)

  服务器系统推荐——Centos7(推荐) 、Centos6 (熟悉)、Centos5(了解)、Ubuntu16 (熟悉)、Window Server 2008 R2 、Window Server 2003

  办公软件推荐——Ms Office 2016  、Ms Office 2012 、Ms Office 2007 、WPS 2013 、Photoshop  CC  、AutoCAD2008 、TeamView 等等

  IDE软件开发工具推荐——Vim  、Eclipse  、IntelliJ IDEA  、UltraEdit(建议都使用最新版本,按个人熟悉程度选择最适合自己的)

  PE系统推荐——UltraISO、微PE、USBOS v3 (老毛桃、大白菜等就免了,广告捆绑太多)

  微软系统下载地址推荐——http://www.itellyou.cn/

  杀毒软件推荐——VSE880LMLRP11(适用Win7、Win10) 、VSE880LMLRP4(适用WinXP) 、Microsoft MCE(MSE企业版,适用Win7)、360系统急救箱

  系统常用组件——DirectX11 、VC运行库 2005-2015 、.NetFramework、Adobe Flash 、硬件驱动 等

  浏览器推荐——谷歌浏览器、火狐浏览器、搜狗浏览器(去广告版)、IE浏览器

5、计算机硬件简介和维护

  主板  、 CPU  、 内存  、 显卡  、 散热  、显示屏 、 硬盘  、USB接口 、品牌(推荐Thinkpad或者Lenovo)

  (1)主板:支持扩展接口多,面积大、做工精细,兼容性好,尽量不要集成CPU、GPU或内存的为佳

  (2)CPU:CPU包括Intel和AMD系列,主要看CPU频率、电压 、核心数(真核、伪核 [ 即一核拆两核 ] ),以及是否支持多级缓存、睿频、虚拟化技术。

    Intel系列:i7 > i5 > i3 > Pentium (奔腾)

    AMD系列:Phenom (羿龙) > Athlon (速龙)   

  (3)GPU:数值一般越大越好 ,主要看容量、频率、带宽、集成或独显、支持DirectX版本等参数,现在很多电脑双显卡,即集成+独显 ,往往安装驱动时容易导致冲突或异常。

    AMD系列 [即 Radeon HD ???]

    NVIDIA [即 GeForce GTX ???] 系列;

  (4)内存:大小、电压 、频率 、双通道 、CPU支持最大内存,注意:内存和 CPU及主板、BIOS版本紧密联系,请务必注意兼容性

  (5)散热:很重要但很容易被忽视的一项,细节的好坏在散热方面体现很明显。

  计算机基本维护常识:

    (1)  能进入BIOS系统和PE系统,且能看到各项硬件信息,说明硬件没问题,其他一切软件故障导致的问题可以用重装系统解决!

    (2)  无法进入系统一般是引导问题或者硬盘分区格式(GPT、MBR)或者散热或者驱动不兼容问题!

6、Java开发工程师成长之路(待补充)

   JDK+ SSM框架 + Hadoop框架+ 通讯协议框架 + 数据库(关系型/非关系型) + Maven + Git + IDE开发工具

   新年小目标——从2019年开始,把工作2年来的知识点和心得进行归纳整理,写到自己的博客中,每月至少3篇,努力成为一名真正的程序员!