当前位置: 首页 > 编程日记 > 正文

想提高代码水平,做到这点就够了

【CSDN 编者按】本篇文章来自于《程序员》杂志的一位老读者,他从大学时最深刻的记忆谈起,到编程路上的心得体会,再到对广大年轻程序员的建议,全篇娓娓道来,希望能对大家有所帮助。


作者 | 姜宁   华为开源能力中心技术专家

人要有梦想,万一实现了呢?

在很久以前,我有一个梦想,就是希望有一天我的文章能够出现在《程序员》杂志上,直到最近,我的这个愿望终于实现了……一半。

我应该算是《程序员》的第一批读者。2000年的时候,我还在上研究生,有一天室友拿着一本杂志冲进宿舍,特别激动地跟我们说他发现了一个宝藏。他那个人本来就有点咋呼,所以我一开始是不信的,直到后来我读了几篇那个杂志上的文章才发现果然是不可多得的宝藏,没错,这个“宝藏”就是《程序员》杂志。后来,室友拿这件事嘲笑了我好久,说我有眼不识泰山,直到工作以后,我还保持着看杂志的习惯,每个月新杂志上线都是我最开心的时候,可能跟那些追更追番的人心情差不多,既期待又激动。

那个年代,学校里教的内容相对滞后,很多当时业界很流行的软件开发方法都不会讲,而我又是一个好奇心比较强的人,所以很多知识我都是从《程序员》上获得的,比如说XP极限编程、DDD面向测试的开发等等。而且杂志上的很多互联网大佬都是我的偶像,他们是我学习的动力,也是我励志的楷模。那个时候我就在想,虽然我可能不会像这些大佬一样成功,但可以争取让我的名字和大佬的名字在同一页纸上啊。二十年过去了,直到《新程序员》杂志复刊,这个愿望才算小小地实现了一半,在这里留一个悬念,感兴趣的同学可以自行阅览。

一个能提升代码水平的“小”窍门

回忆我的学生生涯,在北航(北京航空航天大学)期间,让我印象最深的一门课就是编译原理。因为这门课要想拿到学分,大作业的时候每个人都要独立完成五千行代码编译器的编写工作。乍一听可能有人觉得没什么,毕竟跟大神随手就能敲十万行代码相比还是有差距的。实际操作起来,你就会发现当工程量大了以后,无论是在设计还是调试方面,做事的精细程度和那种十几二十几行代码敲出来的程序完全不是一回事儿。但只有经历过这些,你才能知道真正的程序是怎么写出来的,这也是程序员唯一能提升代码水平的方法。

还有一点过来人的经验,我想送给计算机专业的在校生们,就是一定要尽早接触开源,选一个自己感兴趣的项目,边动手实践边学习。在此过程中你会接触到很多一手的知识,而且开源的环境很开放,遇到任何问题社区里的伙伴们都会积极帮助你,我觉得这是在校生参加课外实践的最佳机会,不用走出校园,就可以跟世界级的开发人员交流。

当你在面试时,面的是什么?

毕业以后,找工作是永远经典的话题,相信大家也都有过面试经验,前段时间我们在招应届生,有一点心得在此想要和大家分享。

其实进大厂并没有大家想象得那么困难,对我们而言,最想看到的肯定是应聘者对于岗位和公司的热情,对工作有期待才能更好地投入。偶尔我也会去看对方在开源社区里的互动情况,以此来衡量他的真实水平。

其次,大部分企业最看重的肯定是学习能力。工作的过程就是不断学习的过程,大的方向有了,网上可参考的资料和教程很多,怎样通过摸索一步步实现功能,还有没有更好的实现方案,考验的就是面试者的学习能力了。

最后,程序员一定不要把自己当成一个996的螺丝钉。很多人在日复一日的加班和毫无技术含量的增删改查中忘记了当初敲下第一行“Hello World”时的心情,代码改变世界,编程创造未来,希望所有的程序员都能永远保持一颗初心,永远年轻,永远热爱!



《新程序员》内容亮点抢先看

《新程序员》立足于行业前沿,深度探索技术未来,通过音视频、图文专栏等丰富的多媒体形式为载体,全方位解读技术与产业,为中国开发者打开新时代的技术之门。

《新程序员001:开发者黄金十年》内容涵盖:

  • 60位+ 技术大咖的干货分享;

  • 34篇 精彩文章供您静心阅读;

  • 13个 专业视频供您快速掌握;

  • 1000位+ 技术人才共同学习成长;

  • 2张 开源核心技术全景工具收藏图。

点击图片查看完整版目录

现在,会员季卡原价89元限时特惠58元,内容包括:

《新程序员》纸质收藏本 1本;

《新程序员001:开发者黄金十年》电子书 1本;

还能获得免费参加《新程序员》主题沙龙的机会!

长按识别二维码即可订阅

无论你是编程爱好者还是职场萌新,无论你是资深程序员还是架构师、CTO,在《新程序员》里,你一定能够有所收获。

相关文章:

modified: xxx(modified content, untracked content)

from:://http://blog.csdn.net/huguohu2006/article/details/7045052 提交代码到服务器后发现git clone下来的有些目录是空的。 查看服务器的目录果然是空的。看本季git add . 后查看git status modified: xxx(modified content, untracked content) 大概意思是xxx目录没有…

一些JSON相关的函数

JSON作为一种轻量的数据传输格式,越来越受到人们的青睐。下面是我仿照Prototype的一些实现。 JSONFilter:/^///*-secure-([/s/S]*)/*///s*$/, unfilterJSON:function(json,filter) { return json.replace((filter || dom.JSONFilter), function(a,b){ return b |…

太任性!17 岁少年买不到回国机票,因“泄愤”攻击航司系统,被判刑 4 年

整理 | 王晓曼出品 | 程序人生(ID:coder _life)因买不到回国机票,一气之下,身处境外的17岁少年陈某竟多次、持续攻击某航空公司计算机系统,致使该航空公司对外服务网络全面瘫痪近四小时,5000余万…

hbase2.0.0-安装部署

依赖hadoop 环境,我这边的版本是hadoop-2.6.5 选择hbase2.0.0版本的时候,去官网查看支持的hadoop版本 1、伪分布式安装 下载:http://mirror.bit.edu.cn/apache/hbase/2.0.0-alpha4/ 版本:hbase-2.0.0-alpha4-bin.tar.gz 2、tar -z…

Git详解之二 Git基础

Git 基础 读完本章你就能上手使用 Git 了。本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件…

一致性哈希(Consistent Hashing)

在大型web应用中,缓存可算是当今的一个标准开发配置了。在大规模的缓存应用中,应运而生了分布式缓存系统。分布式缓存系统的基本原理,大家也有所耳闻。key-value如何均匀的分散到集群中?说到此,最常规的方式莫过于hash…

CT片居然可以这么玩:用头部CT断层扫描片复原三维头像

作者:天元浪子 来源:Python作业辅导员前言CT是现代医学影像的主力设备,寻常百姓并不陌生。通常,一张CT片由多张连续断层扫描的图像组成。在医生眼中,CT片展示了人体器官的形态和性质,是判断病人健康状况的重…

Nginx学习笔记(一) Nginx架构

Nginx全程是什么? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 daemon守护线程 nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master…

PXE实现批量部署linux系统

pxe批量部署linux服务器1、pxe介绍PXE是有intel设计的协议,它可以使计算机通过网络启动,协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存中执行,并显示出命令…

首场见习挑战赛倒计时3天!20000元奖学金瓜分就等你了!

CSDN软件开发精英赛是基于“C认证—软件工程师能力认证考试”而设立的编程比赛,大赛联合广大科技企业设置丰厚礼品及30万元奖学金。从7月22日官宣到今日,短短一个月内,大赛已经吸引了来自全国的2000+开发者参与其中。第一轮“见习…

一致性哈希算法以及其PHP实现

在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time…

Linux入门(四)

目录: 1234567891011121314一、根文件系统层级标准FHS二、bash的基础特性(一)1.命令历史 2.命令行补全 3.路径补全 4.命令行展开 5.命令执行的状态结果 6.引用 7.快捷键 三、目录管理相关命令mkdir、rmdir、tree四、引用命令的执行结果五、文…

OSI[七层]与TCP/IP[四层]模型简述简图

OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织(International Standard Organization,ISO&#xf…

中国国际消费电子博览会拥抱转型,全新面貌拭目以待!

2021年9月24—26日,第十九届中国国际消费电子博览会(简称电博会)将在青岛国际会展中心隆重举行,如今距离电博会开幕已不到3个月的时间,全国各地的参展企业跃跃欲试、积极筹备。 长久以来,电博会为全球消费…

Fragment提交transaction导致state loss异常

下面自从Honeycomb发布后,下面栈跟踪信息和异常信息已经困扰了StackOverFlow很久了。 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.j…

ASP网络编程从入门到精通 下载

《ASP网络编程从入门到精通》 清华大学出版社 特点: 面向ASP零基础读者,循序渐进 全面分析ASP技术细节 用代码描述个个知识点,操作性强 通过典型模块设计,体会ASP的奥妙 通过网上商城购物系统,增加项目开发经验 适合的…

项目Makefile文件模板

整理出来的一个Makefile模板,新增了一个内容,调用gcc生成依赖文件,这样如果某个c文件包含的头文件被更新了,该c文件以及依赖于该c文件的obj文件都会被重新编译.这个模板是按照我习惯的项目文件组织形式进行定义的,我的习惯是头文件放在include文件夹,代码放在src文件夹,目标文件…

小撒、金晨都想拥有!百度全球首款汽车机器人亮相,车内躺着看星星

整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 金晨坐了都想带回家的车、无人车出行服务、撒贝宁与祝融号对话等等。 这届百度世界大会真的很惊艳。 8月18日,百度与央视新闻联合举办“AI这时代,星辰大海——百度世界大会2021…

解决oracle11g安装导致数据库无法自动搜集统计信息-转

近期发现个别11G数据库无法自动收集统计信息,部分视图查询结果如下: SQL> select client_name,status from dba_autotask_client where client_name auto optimizer stats collection;CLIENT_NAME STATUS -----------------------------------------…

服务器监控--cacti中英文版安装全解

近段时间一直在整服务器监控方面的东西,以下就是cacti中英文版安装的全过程,各安装包基本都是最新的,基于Centos 5.2平台下安装的!!#!/bin/bash# BY kerryhu# QQ:263205768# MAIL:king_819163.com# BLOG:[url]http://kerry.blog.51cto.com[/url]# Please manual operation yum …

lighttpd1.4.18代码分析

lighttpd1.4.18代码分析(八)--状态机(2)CON_STATE_READ状态posted 2008-09-24 10:50 那谁 阅读(2225) | 评论 (1) 编辑 lighttpd1.4.18代码分析(七)--状态机(1)CON_STATE_REQUEST_START状态posted 2008-09-22 15:10 那谁 阅读(2259) | 评论 (0) 编辑 lighttpd1.4.18代码分析…

惊艳亮相!马斯克发布自研超算 Dojo 芯片、特斯拉人形机器人

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 北京时间 8 月 20 日,特斯拉 AI 日终于开始了!在活动上不仅推出自研计算机系统Dojo 及 D1 芯片,同时还推出了特斯拉的下一个大型项目:人形机器人&#x…

git revert和git reset的区别

git revert 是撤销某次操作,此次操作之前的commit都会被保留git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区具体一个例子,假设有三个commit, git st:commit3: add test3.ccommit2: add test2.ccommit1: add test…

python之深浅拷贝

对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。 import copy # ######### 数字、字符串 #########n1 123 # n1 "age 10"print(id(n1)) # ## 赋值 ##n2 n1 print(id(n2)) # ## 浅拷贝 ##n2 copy.cop…

linux:关于Linux系统中 CPU Memory IO Network的性能监测

我们知道:系统优化是一项复杂、繁琐、长期的工作.通常监测的子系统有以下这些:CPUMemoryIONetwork下面是常用的监测工具Linux 系统包括很多子系统(包括刚刚介绍的CPU,Memory,IO,Network,等&…

火爆 GitHub!这个 AI 神器究竟有什么魅力?

图像分割(image segmentation)技术是计算机视觉领域的一个重要的研究方向,图像分割是计算机视觉中的一个关键过程。它包括将视觉输入分割成片段以简化图像分析。片段表示目标或目标的一部分,并由像素集或“超像素”组成。图像分割…

HTTP 状态代码

HTTP 状态代码 如果向您的服务器发出了某项请求要求显示您网站21kaiyun.com上的某个网页(例如,当用户通过浏览器访问您的网页时),那么,您的服务器会返回 HTTP 状态代码以响应该请求。 此状态代码提供了有关请求状态的信…

[Web 开发] 定制IE下载对话框的按钮(打开/保存)

下图常见的IE 下载对话框, 上面有3个主要按钮: Run (打开), Save(保存), Cancel (取消) 在某些情况下, 你不希望用户点击“Run” 按钮 或者 “Sav…

25 年汽车技术老兵亲述,自动驾驶新驶向

受访者 | 俞斌 记者 | 伍杏玲 出品 | AI科技大本营(ID:rgznai100) 在 IT 发展长河中,我们面对过不同的技术风口,历史终究大浪淘沙沉者为金。其中“自动驾驶”似乎是经久不衰的“风口”,成为人类的终极追求之一&#xf…

当你学了现在的忘了前面的

我怀疑我的智商应该不是很高,要不然我也不会学的如此狼狈。虽然我总是能很好的理解现在所学的知识点,但是我就是记不住,当下次再次需要上次的知识点来解决问题的时候,我总是忘的差不多了,要不就是没把握和对不对的问题…