想要成为真正优秀的程序员是不是真的很难?

很多人认为要想成为一名优秀的程序员,那就需要一天24小时每天不断地编程——睁开眼睛要编程,闭上眼睛睡觉的时候还要梦到编程——我认为这是一种矫枉过正的方法。沿着这条路走,只会让你精疲力尽,犹如夸父逐日一般,死在半道上。

我觉得问题的关键是要想明白你为什么要编程。坦率地说,我编程是因为我喜欢别人用我的程序,这也是我之所以在读书的时候成绩不怎么优秀的原因(我并不热衷于参加编程竞赛以及类似事情)。因此,我也不喜欢参与纯研究的项目——只在论文上讨论各种点子,而不付诸于行动不去写代码(除非恰巧碰到的是研究项目和开源项目)。

我在编程上并不是一个唯美主义者。我的观点是能工作、有用的代码就可以被定义为优雅,即使它看上去是一团乱糟糟的GOTO语句。

我认为的“优秀的程序员”应该是这样的:

  • 偷懒战略。优秀的程序员更倾向于灵活工作而非死工作,所以如果你想要将编程当作长期的职业规划,那么学习重用代码和自动化繁琐的任务是至关重要的。
  • 在职业生涯早期,有机会就多多了解从需求分析到最终发布整个的软件流程,这样你才能学习从终端到终端的设计——还可以激发你的信心。
  • 生活中除了编程以外,应该还要有某项能让你经常外出活动的业余爱好。这样才能改善你消耗在键盘上的健康。
  • 如果你想要在编程这一行待个三五十年,那么最好学点拿手绝活,让别人在某个领域不敢小觑于你,密切关注这方面的技术进步,保持同步。
  • 多了解几门编程语言——特别掌握你准备精通的编程语言。并且最好能从不同的编程范式(程序,设置,功能等)来了解语言。
  • 相关的:不必过于担心你不知道的新的Zwizzle-Wiz算法。如果不需要实施细节的话,了解一些相关领域重点算法以及比较重要的通用算法(如排序和搜索)的特点和功能就可以了。没有必要囫囵吞枣、傻不拉几的试图想要记忆100种算法的实现(我看到有人曾经这么做过),你的小脑袋会爆掉的。
  • 了解如何面试程序员。英雄总是惺惺相惜,作为一名优秀的程序员,建设优良的团队,也是你的部分责任。
  • 了解公司业务的相关内容,以及你的代码需要如何与之匹配,这有助于你正确地作出相关的决策,避免走一些弯路。
  • 问问相关人员的想法,看看他们对你的代码的评价,包括产品经理、QA、现场支持人员、专业的服务工程师和实际使用的客户等。
  • 相关的:不要错过任何一个和客户交流的机会。但是一定要注意自己的行为举止:耐心聆听,哪怕客户的想法听上去非常可笑,这主要是因为他们不是程序员的缘故。但是,如果你能借此机会好好思考关于如何使用代码以及使用过程中的日常挑战,那么将有助于你提高你的产品。
  • 对于我,我是Unix哲学——一系列通用设计原则的铁杆粉丝。虽然这些原则并不总是有效,但它是指点我如何连接优良代码—系统—设计的指南针。

所以,对于“想要成为一名真正优秀的程序员是不是真的非常难?”这一问题的答案,可能的确是非常艰难非常辛苦的,特别是要想成长为一名优秀的程序员是需要一段很长的时间。但是只要你愿意好好学习代码的系统知识和机制,那么我相信你一定可以长风破浪会有时,直挂云帆济沧海。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Impala查询 - HDFS缓存数据

HDFS缓存数据命令 查看缓存池信息 hdfs cacheadmin -listPools -stats 查看已缓存的数据信息 hdfs cacheadmin -listDirectives -stats Impala表卸载缓存数据 alter table dw_crawler.bsl_zhongda_weibo_article_hive set uncached; 创建缓存池 hdfs cacheadmin -addPool a…

html怎样实现数据列表的下拉效果

目前支持浏览器&#xff1a;火狐、欧朋。。 谷歌不支持 <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>hello</title> </head> <body> <form action"testform.php"method&q…

Java 调用 Impala - JDBC 调用Impala

java通过JDBC 调用Impala服务 Maven项目中 pom.xml引用<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.1</version></dependency><dependency><groupId>…

html中怎样实现在输入框中出现提示

<!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>hello</title> </head> <body> <form action"testform.php"method"get"> 请输入网址&#xff1a;<input ty…

HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递

目录 WorkFlow传静态参数 Schedule 传动态参数 oozie常用的系统常量 场景&#xff1a;HUE执行任务需要从外部传入参数&#xff0c;不能在脚本写死&#xff0c;比较麻烦 WorkFlow传静态参数 执行的脚本代码如下 CREATE EXTERNAL TABLE ${hivevar:database}.${hivevar:table…

函数调用过程简单分析

C/C函数调用过程分析 这里以一个简单的C语言代码为例&#xff0c;来分析函数调用过程 代码&#xff1a; 1 #include <stdio.h>2 3 int func(int param1 ,int param2,int param3)4 {5 int var1 param1;6 int var2 param2;7 int var3 param3;8 …

HUE Schedule 定时调度 - 启动时间设置问题(执行次数过多,时区问题)

在启动Schedule 时需要设置开始时间&#xff0c;结束时间不用讨论&#xff0c;开始时间设置时尽量为当前时间 因为开始时间设置如果小于今天&#xff0c;比如设置为2019-01-01&#xff0c;定时器是每天1:29分启动&#xff0c;则会将日期之前的次数执行了&#xff0c;即执行开始…

Kafka(六)Kafka基本客户端命令操作

转载自&#xff1a;https://blog.51cto.com/littledevil/2147950 主题管理 创建主题 如果配置了auto.create.topics.enabletrue&#xff08;这也是默认值&#xff09;这样当生产者向一个没有创建的主题发送消息就会自动创建&#xff0c;其分区数量和副本数量也是有默认配置来…

linux平台C++开发基本知识

最近工作中&#xff0c;需要在linux上开发C程序。有了下面的问题。 1&#xff0c;linux平台C开发和win32 C开发有什么区别呢&#xff1f; 2&#xff0c;除了C语言&#xff0c;数据结构等必须的知识外&#xff0c;还需要些了解什么呢&#xff1f; 3&#xff0c;如何在linux平台开…

Impala 调用Hbase 报错 LeaseException

impala调用Hbase表数据操作时&#xff0c;提示 LeaseException 异常&#xff0c;主要原因是hbase数据过大&#xff0c;调用期间没有汇报心跳导致 WARNINGS: LeaseException: org.apache.hadoop.hbase.regionserver.LeaseException: lease -8355984789923245890 does not exist…

mitmproxy 中间人代理工具,抓包工具,linux抓包工具 mitmproxy 使用

mitmproxy是一个支持HTTP和HTTPS的抓包程序&#xff0c;类似Fiddler、Charles的功能&#xff0c;可以在linux以命令行形式的展示抓包信息 mitmdump&#xff1a;它是mitmproxy的命令行接口&#xff0c;利用它我们可以对接Python脚本&#xff0c;用Python实现监听后的处理。 mitm…

Ajax学习总结+案例

一、AJAX简介 1、Asynchronous JavaScript And XML指异步 JavaScript 及 XML 2、老技术新用法。是基于JavaScript、XML、HTML、CSS新用法 二、同步和异步&#xff08;理解&#xff09; 三、第一个异步请求案例&#xff08;熟悉编码步骤&#xff09; 四、XmlHttpRequest&…

Spark 运行内存不足Not enough space to cache rdd in memory,Container killed by YARN for exceeding memory

日志报错&#xff08;WARN类型最后执行成功可以忽略&#xff09;&#xff1a; 19/04/15 12:35:37 INFO memory.MemoryStore: Will not store rdd_2_5119/04/15 12:35:37 WARN memory.MemoryStore: Not enough space to cache rdd_2_51 in memory! (computed 1109.7 MB so far)…

Spark 某两个节点数据分析速度慢 - hbase数据删除(分裂) 元信息未删除导致 There is an overlap in the region chain.

基于Hbase2.0&#xff0c;Spark2.2 问题描述 执行Spark处理Hbase数据时&#xff0c;遇到某两个Excutor处理速度特别慢&#xff0c;如图 正常速度10多分钟 左右处理完成&#xff0c; 一个多小时有另外一个处理完成&#xff0c;还有一个在处理中。 分析原因 1.查看hbase数据分…

在MFC程序中增加控制台窗口

MFC程序中&#xff0c;如果想要输出调试信息&#xff0c;我们一般都是TRACE或者使用LOG文件&#xff0c;都不是很方便&#xff0c;第一个需要我们在调试状态下&#xff0c;第二个也要配置麻烦而且不直观。而使用Console来显示调试信息应该是更好的选择。下面介绍几种在MFC程序中…

mysql配置

MySQL5.6.11安装步骤&#xff08;Windows7 64位&#xff09; http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html1. 下载MySQL Community Server 5.6.21&#xff0c;注意选择系统类型&#xff08;32位/64位&#xff09; 2. 解压MySQL压缩包 将以下载的MySQL压缩包…

大数据技术讲解

HDFS的体系架构 整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持&#xff0c;并通过MR来实现对分布式并行任务处理的程序支持。 HDFS采用主从&#xff08;Master/Slave&#xff09;结构模型&#xff0c;一个HDFS集群是由一个NameNode和若干个DataNode组…

Hbase快照Snapshot 数据备份、恢复与迁移

场景 hbase数据迁移时我们需要统计迁移时的数据量&#xff0c;以确保迁移后的数据的完成&#xff0c;但是如果hbase表数据持续增加的话&#xff0c;迁移时无法统计出准确的数据量&#xff0c;此时我们使用快照的方式进行数据迁移&#xff0c;以确保迁移的数量可以和某一时间节点…

HUE 打开 WorkFlow异常 Operation category READ is not supported in state standby

异常&#xff1a;在hue上配置的一些定时任务突然停止执行。 1.打开页面HUE->WorkFlow 发现页面异常&#xff0c;无法进入WorkFlow&#xff0c;如下图 2.查看HUE日志 查看到WebHdfsException异常&#xff0c;访问HDFS文件浏览器报错&#xff0c; [26/Jun/2019 09:29:55 080…

Hbase Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory

新启动测试环境Hbase报错&#xff0c;报错日志如下 # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 31715688448 bytes for committing reserved memory. # An error report file with mo…