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

程序员感悟----路该怎么走

有一句话我一直记得很深,“当人深处迷茫之中时早已不再迷茫”。很绕很矛盾的话,也可能有人听到后会马上跳脚喊,我一直迷茫怎么还是迷茫呢?呵呵。静一下想一下再喊。

大家都这么大了,路该怎么走,你知道么?作为程序员,路该怎么走,你知道么?

05年入学,对IT一无所知,对程序一无所知,甚至对自己也是一无所知。路走到了今天,我感触确实不少,写点东西以飨来者。

科班出身的我们,从开始就按部就班的学着操作系统,数据结构,组成原理;从cc++,汇编,java这些又是标准课程。面对纷繁复杂的IT界,你每天记住五个名词或者缩写,到今天我敢说你依旧很多东西不知道。难怪不知道怎么走。我们不是选择太少而是选择太多。我们得到的信息不是太少而是太多。

不知道现在还有没有人疑惑是该学c++还是学java;是该选择.NET平台还是java平台;是该学通信还是学web;是好好编程还是学好软件工程;是学python还是ruby;是学javaFX还是WPF;是专注windows开发还是去linux;是跟着大家一起SOA还是OO。。。如果这个单子继续列下去,就像死循环一样吧,无终无止直到崩溃。

但单子上的每一个选择又都是那么切身的烦恼着我们。站着说话不腰疼的人无法理解切身的痛。我是从大二下学期开始学习的,是突然之间对作为程序员感了兴趣,虽然晚了点,但迟到总比不到强。当时我就很迷茫,也不知道该学什么,当时网上c++还是比较火的,虽然有人说它已经死去,被什么什么替代,但总有很多人站出来力争并有些道理。于是热血的我斥资买了大量c++经典,基本能叫上名来的经典我都买了吧,五本以上。当时看着书架上一片c++,心情澎湃啊,谁说c++会死掉,我跟谁玩命。可最后呢,呵呵,不好意思,没坚持下去,除了effective c++看了一半左右,其他有的翻翻有的连动都没有,最后把所有书半卖半送给同学了。

然后马上转到.NET平台,开始学习C#,至今都不知道为什么,也许打了鸡血,又是心潮澎湃吧。可这次基本算是坚持下去了。一如既往,书架上一片.NETc#,图书馆的相关书籍也是不知被我借了多少本。我觉得有一点幸运的是我看的第一本.NET书籍是understanding .NET的中文译本《.NET大局观》。看了以后确实有了一个不错的大局观,虽然当时有不少地方看不懂,但足够了。我知道.NET是平台,C#什么都不是。如果不理解.NET,学c#没用。以至后来我跟同学说“java不是一种语言,c#不能独存”,至今想想都很有道理。

于是一路沿着程序员的路走了下去,开始去理解OO,间断的编程序,学习web,了解SOA,看《程序员》杂志,总和几个哥们高谈阔论技术。其实我知道自己水平很低,但是我知道我在干什么,而且还有点兴趣。足够啦。

那么再回到题目,路该怎么走。我是那种不爱听别人话的人,我不同场合跟人说过,别人说话都是放屁,如果你觉得香就去听,不喜欢就算了,喜欢屁的人还是不多的。我话虽然说得很难听,但tell the truth,我就是喜欢屁的那种人,我当面抵触背地里就会想人家说得到底对不对,我自己哪里有问题。表里不一啊。

既然是程序员的感悟,再回头说点技术的路怎么走。技术大牛们总是喧嚣着这鼓吹着那,什么技术的发展总是朝着更快更简单(很多人说,孟岩也说过,他是个有争议的牛人)想想还真对,谁不喜欢简单点快点啊。但是从一个技术跳变到另一个技术为什么简单了为什么快了。你知道么?

很多人都学过c++,先不管编过多少代码。C++中的多重继承大家印象深刻吧,在后来的高级语言中都把这个特性砍掉了。为什么?我不知道。为什么不知道,因为我没用过多重继承,它没有给我带来过巨大的麻烦让我困惑不已。如果硬让我说多重继承带来的麻烦就是我不知道为什么它被砍掉了。蛮有道理蛮有现实意味的东西。这一点我也问过SY,因为我知道他编过不少c++的程序,而且项目还不太小。他说他也没被多重继承烦恼过,也无从说起它的坏来。

再说一个更有趣的,万恶之源的goto。市面上我们接触的语言大多都有goto,但是所有技术大牛都说不要用。那是万恶之源啊。我用过,在汇编里,因为据我的水平汇编不用goto没办法。可是我的汇编程序小的可怜,根本不足以暴露goto的恶来,所以至今我也不恨它。

再说一下重量级和轻量级,太流行的两个词汇啦,或者说轻量级更流行吧。为什么,因为它轻吧。哈哈。俗话说,船小怕风浪,船大难掉头。不大不小又怕风浪有难掉头。所以不要一直不变的以为轻量级一定是发展方向。想要迎风破浪,没有大船也不行。

大家看懂我要说什么了吧。所有的技术变革都是有原因的,即使厂商们再鼓吹,都是要真的有那么回事,他们才能煞有介事。可是我们为什么会对技术变革感到迷茫,对选择感到困惑,因为我们不了解前因后果,我们没有受到上一种技术的煎熬,我们没有感受到后一种技术带来的便捷。那怎么可能不困惑呢。。。

别人的经历再丰富再有道理,但那不是你的,你依旧不会真的明了其中的道理。但话说话来,我还是不会用多重继承的,我还是不会使用goto的,我还是会命名规范的。我还是会欣然接受技术变革的。断代史的特点就是这样。

那么你现在还会为选择了python的同时ruby火了而愤怒么?还会为了选择了.NETJ2EE异常流行感到遗憾么?

其实路就在脚下,怎么走看你自己,结果也只有你自己知道。如鱼饮水啊。去经历那些困难和麻烦,才会知道简单快捷的好处。去经历迷惑才能体味清醒的快乐。还要去看技术大牛们的吹嘘和感叹。还是要自己一行一行的敲打垃圾程序。给你十年。够不够?

程序员的路是一行一行打出来的。

 

有些东西确实是有感而发,另一些是愤青。

                                                       ----- 写在后面

                                            by 千冰念@YITIAN Studio

        

程序员的路是一行一行走出来的,不管多困难,我能做的只是,绝不低头。

【reprinted from http://www.cnblogs.com/windyitian/ , 我该如何思考呢?该如何走呢?silverlight?我的人生?】

转载于:https://www.cnblogs.com/GT_Andy/archive/2009/10/11/1921977.html

相关文章:

1020 Tree Traversals

1. 有这样一个经典结论:中序序列可以和先序序列、后序序列、层序序列中的任意一个来构建唯一的二叉树,而后三者两两搭配或者三个一起上都不行。因为从本质上来说,后三者都只提供根结点,只有通过中序才能区分左右子树。 2. 本题用…

Android添加权限大讲解

http://bbs.51cto.com/thread-1096739-1.html 对于新手来说,最烦恼的不是如何从网上下载到安卓项目,而是下载到的安卓项目不知道如何添加权限和要添加哪些权限。现在就针对安卓的权限来讲解这些权限应该具体用在什么地方 首先在项目下找到 AndroidManife…

经典算法之选择排序

问题 有一数组a,长度为n,把数组中的元素从大到小重新排列 思路 选择排序十分容易理解。可以理解为有一个盘子,里面装着很多钻石,你可以从里面拿钻石,但一次只可以拿一颗。第一次你当然会拿最大的出来了,第二…

PHP 读写数据库出现中文乱码问题

一、我在PHP读写数据库时,出现中文乱码问题的解决方案: 1、加入一句话就行了: mysql_query("set character set utf8");//读库 mysql_query("set names utf8");//写库 //其实读写都可以只加入 m…

1086 Tree Traversals Again

1. 这题的核心部分是,根据二叉树的先序序列和中序序列求后序序列。等于是在1020 Tree Traversals这一题的基础上,把怎么得到先序序列和中序序列的难度加大了,不是直接给出,而是要曲折一点得到。 2. 先序序列的得到就是把Push后面…

Eclipse的Java工作集和多工程构建路径

一、Java工作集: Eclipse有一个小功能,就是创建Java Working Set。它的作用是解决Package Explorer窗格中创建很多工程时出现拥挤的麻烦。 在创建(New对话框)时可以加入原来存在的Java工程。创建完后,在左方Package Ex…

ORA-08002: sequence MySeq.currval is not yet defined in this session

2019独角兽企业重金招聘Python工程师标准>>> MySeq.currval 从你的会话中的MySeq序列获取最新的值并返回,因此,它未曾被定义,直到你在你的会话中至少一次用MySeq.NEXTVAL获取一个值。CURRVAL的目的是让你在你的代码中使用某个序列…

【Vegas原创】exp时,ORA-00932: 数据类型不一致解决方法

现象: EXP-00056: 遇到 ORACLE 错误 932 ORA-00932: 数据类型不一致: 应为 BLOB, CLOB, 但却获得 CHAR EXP-00000: 导出终止失败 解决方法: 运行2个脚本: SQL> ?/rdbms/admin/catmetx.sql SQL> ?/rdbms/admin/utlrp.sql 转载于:htt…

1102 Invert a Binary Tree 需再做

1. 题目的输入是&#xff0c;先给出结点总数N&#xff0c;然后N行给出的是值为x&#xff08;0<x<N-1&#xff09;的结点的左右结点的值&#xff0c;若不存在左/右结点&#xff0c;则值为 - 。 2. 这一题我用动态链表没有做出来&#xff0c;根据参考书提示改用静态链表。…

iOS安全攻防(八)Thoes的Logos简介

个人原创&#xff0c;转帖请注明来源:cnblogs.com/jailbreaker 上一篇帖子&#xff0c;讲到使用iOSOpenDev开发基于Theos的Tweak,功能Hook了SpringBoard的 -(void)applicationDidFinishLaunching:(id)application。 先简单讲一下Hook,Hook中文翻译为“钩子”&#xff0c;非常形…

Algs4-1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列)

1.1.13编写一段代码&#xff0c;打印出一个M行N列的二维数组的转置(交换行和列&#xff09;。public class Test{public static void main(String[] args){//初始化int MInteger.parseInt(args[0]);int NInteger.parseInt(args[1]);String[][] arraynew String[M][N];for (int…

1053 Path of Equal Weight

1. 以下两组关系很大的概念 树的深度优先搜索 - 先根遍历 - 递归 树的广度优先搜索 - 层序遍历 - 非递归 本题考察的是前者&#xff0c;我设置了这样一个结构体 struct Prestruct{int totalWei 0;vector<int> pre; };Prestruct pre[maxn]; pre[idx].pre向量存放父节…

MapXtreme 2005 学习心得 在地图上创建点/线并显示标注(五)

新建示例 1&#xff1a;新建项目 新建一个网站&#xff0c;选择MapXtreme 6.7.1 Web Application在App_Code中&#xff0c;我们新建一个类&#xff0c;起名叫:LayerManager.cs2&#xff1a;把上节函数放到类LayerManager中 把上一节的函数代码全copy过来&#xff0c;还有using的…

无人驾驶——对frenet坐标的理解

好的确定车和路之间的关系&#xff0c;我们通常将车辆的在大地坐标坐标转化为车辆和道路之间的frenet坐标。 可能有人会疑问为什么转换后就方便了呢&#xff1f;我们来看一个例子。 在大地坐标下&#xff1a; 无人车首先要知道红色车的位置。通过传感器得到目标在车辆坐标系下的…

1079 Total Sales of Supply Chain

1. 这道题考察的是树的层次遍历&#xff0c;结点需要有层这个属性&#xff0c;对于我来说&#xff0c;难点在于什么时候给层赋值&#xff0c;看书后知道应该是在加入队列之前(不管是根节点还是之后所有节点)。 2. 一开始算得216&#xff0c;原因是把r直接加一当作底数&#xf…

在VS下用C语言连接SQLServer2008

在VS下用C语言连接SQLServer2008 原文:在VS下用C语言连接SQLServer2008 step1:启动SQLSERVER服务 step2:打建立数据库test,在test库中建立test表(a varchar(200),b varchar(200)) step3:建立系统DSN,开始菜单 ->运行 ->odbcad32, 添加->SQL SERVER Native Client 1…

canvas.width和canvas.style.width区别以及应用

今天讲的内容是canvas.width和canvas.style.width的区别&#xff0c;在没有做canvas项目之前&#xff0c;其实我是并没有深入了解过这两个属性的&#xff0c;最近在研究canvas项目的自适应问题&#xff0c;尤其是在canvas中置入图片&#xff0c;碰到了图片模糊的问题&#xff0…

vj p1042捕风捉影 题解

原体叙述 题意就是让你找出m,n之间的既是回文数又是素数的数 此题完全可以打表。除打表外&#xff0c;方法如下&#xff1a; 构成法 根据数学知识可知&#xff0c;如果一个回文数为偶数位&#xff0c;则必然能被11整除。 即所找的结果必为奇数位。 这样&#xff0c;大致方法就出…

1090 Highest Price in Supply Chain 需再做

1. 由于用不上结点的数据域&#xff0c;所以可以只用整型向量数组存放每一个结点的子节点下标即可。 2. 涉及到层次&#xff0c;未必用层次遍历&#xff0c;本题用先根遍历&#xff0c;也就是深度优先代码更优雅。 3. 这题创建树未必难&#xff0c;但是题目有一句话必须读懂e…

有关Adobe公司的PostScript语言授权问题

各位大神好&#xff1a; 最近公司打算用PostScript语言开发一款打印机产品&#xff0c;本人现在正对这方面予以了解&#xff0c;但是关于Postscript却一无所知&#xff0c;请问园子里的大神们有没有知道的。 我是想咨询一下有关adobe公司在上世纪80年代公司刚成立的时候所推出的…

INTERSECT/EXCEPT VS. IN/NOT IN

我真是OLD到死&#xff0c;虽然记得以前肯定看到过INTERSECT/EXCEPT这两个关键字&#xff0c;前不久还在羡慕Oracle有/-集合操作符而SQL Server怎么竟然没有。。。现在想想难怪当初微软面试的时候面试官告诉我最好了解一下SQL Server 2005新的函数。。。 下面翻译一下http://ww…

聊聊storm的stream的分流与合并

序 本文主要研究一下storm的stream的分流与合并 实例 Testpublic void testStreamSplitJoin() throws InvalidTopologyException, AuthorizationException, AlreadyAliveException {TopologyBuilder builder new TopologyBuilder();builder.setSpout("sentence-spout&quo…

1106 Lowest Price in Supply Chain

1. 本题和1090 Highest Price in Supply Chain适成对比&#xff0c;都是先构建一棵树&#xff0c;但本题是求最小层数和个数&#xff0c;链接题是求最大层数和个数。在极值更换和个数更新方面&#xff0c;两道题是一样的&#xff0c;但要注意&#xff0c;如果是求最小&#xff…

积极拥抱.NET Core开源社区

潘正磊在上海的Tech Summit 2018 大会上给我们的.NET Core以及开源情况带来了最新信息。 .Net Core 开源后取得了更加快速的发展&#xff0c;目前越活跃用户高达400万人&#xff0c;每月新增开发者45万&#xff0c;在 GitHub 上的月度增长达到15%。目前有来自超过3,700家企业的…

13_文件的操作模式

私有文件访问测试 package cn.itcast.test;import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream;import android.test.AndroidTestCase; import android.util.Log;public class AccessOtherAppPrivateTest extends AndroidTestCase {p…

Vcastr 2.2 flv 网络播放器 参数设置

Vcastr 2.2 flv 网络播放器 参数设置 参数名称参数说明默认值vcastr_file方法2传递影片flv文件地址参数&#xff0c;多个使用|分开空vcastr_title影片标题参数&#xff0c;多个使用|分开&#xff0c;与方法2配合使用空vcastr_xml方法3 传递影片flv文件地址参数&#xff0c;样板…

1094 The Largest Generation

1. 开始测试点1答案错误&#xff0c;上网查了发现是因为用了层次遍历的原因&#xff0c;改成先根遍历&#xff0c;即DFS答案就正确了。启示&#xff1a;BFS不行就试试DFS。 2. 这题也不需要结构体数组&#xff0c;向量数据即可&#xff0c;有几个较为关键的变量 int numOflay…

JS魔法堂:mmDeferred源码剖析

一、前言                             avalon.js的影响力愈发强劲&#xff0c;而作为子模块之一的mmDeferred必然成为异步调用模式学习之旅的又一站呢&#xff01;本文将记录我对mmDeferred的认识&#xff0c;若有纰漏请各位指正&#xff0c;谢谢…

asp vb 插入,更新,删除数据库操作。

记笔记。离开学校&#xff0c;东西都还给老师了&#xff0c;哎。Select Case str Case "insert": sql"select * from ["&tablename&"] where idnull" rs.open sql,conn,1,3 rs.addnew For Each key In request.Form …

第五次作业:四则运算之升级

本次作业要求来源&#xff1a;https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232 我的github地址&#xff1a;https://github.com/yellowjy/study 结对同伴的学号姓名&#xff1a;201606120069 缪国锋 一、基本要求&#xff1a; 生成题目&#xff0c;单个题目最多…