FreeOZ论坛

标题: 问各位软件达人一个问题 [打印本页]

作者: 四香油饼    时间: 12-11-2009 16:07
标题: 问各位软件达人一个问题
你们从开始学习编程(从学习语言算起),到能编写实用的软件,大概用了多少时间啊?

不是指你现在重新学习,是指从没有基础,到完全掌握的时间。
作者: emacs    时间: 12-11-2009 16:20
大概半年多...
我是做硬件出身,工作后才开始真正写代码,基本没有基础的
我觉得从不会到写能用的软件,这个过程不算难
难的是从能用到好用...
作者: yuba    时间: 12-11-2009 16:38
这个题目能激起很多人的怀旧情怀啊

[ 本帖最后由 yuba 于 12-11-2009 16:40 编辑 ]
作者: uniwg    时间: 12-11-2009 20:37
还是行业应用的经验最重要,比如你做物流或OA,经验就不同了。基本的架子,实际都是差不多的。行话就是所谓BUSINESS LOGIC了,这个才是最可出售的经验了。
作者: oldqin    时间: 12-11-2009 22:25
标题: 回复 #4 uniwg 的帖子
不能同意你更多

行业经验很重要
作者: ritz    时间: 12-11-2009 22:33
9年 (初中开始学,大四做兼职编程)
作者: 刘叔    时间: 12-11-2009 22:57
标题: 回复 #1 四香油饼 的帖子
饼叔又开始折腾学写程序?

俺来告诉你一个半路出家的人的真实经历——只要一个月,最多三个月即可。

当年俺从第一家单位(做市场)辞职以后,专心在家攻读JAVA,两个月后考了一张SCJP证书,顺利混入一软件公司。
然后,俺经过勤奋的偷学和研究,最终成功混入研发中心,成为核心程序员

看你想干嘛,才知道有多少东西要学、要学多久。

如果是想写个媒体播放器,用控件拖拖拉拉就行;如果想做个网站,从最简单的WORD、FRONTPAGE,到复杂的PHP、JSP,所花时间精力不等。

如果饼叔是想给哪位mm做个漂亮的FLASH动画配音乐,呵呵,那需要的主要是美工方面的能力了。
作者: coredump    时间: 13-11-2009 10:20
Uncle Bing's main problem is he want to learn a lot of things at the same time.
作者: 四香油饼    时间: 13-11-2009 12:26
牛叔就是牛啊。

帮主说的对,我就是任务开得太多了
谁让我啥都不懂呢
作者: stellahie    时间: 13-11-2009 12:32
我大学做过的projects貌似都比我工作的时候做的东西还实用。。。
作者: 一半    时间: 13-11-2009 15:10
我写了8年了,觉得还没完全掌握
作者: key    时间: 13-11-2009 20:59
软件如果只论“实用”,那不是靠学出来的,是靠堆出来的。
如果你有想法,在知道大概语法的前提下,用心堆软件,部能堆出来。
这样的软件就是“能跑”,换句话,可以说是“实用”。

加上现在的程序语言越来越高级。basic和现在一些语言比起来,都不好意思自称basic了。
不过你一定要选c++,又还要在embedded linux条件下做,再加上没有人指点,
我看有点难。但如果你有一个目标,或project在手,在“实用”,“能跑”的大前提下做,
那就相对容易。

原帖由 四香油饼 于 12-11-2009 16:07 发表
你们从开始学习编程(从学习语言算起),到能编写实用的软件,大概用了多少时间啊?

不是指你现在重新学习,是指从没有基础,到完全掌握的时间。

作者: key    时间: 13-11-2009 21:00
是有点。走了很多弯路。

原帖由 yuba 于 12-11-2009 16:38 发表
这个题目能激起很多人的怀旧情怀啊

作者: key    时间: 13-11-2009 21:07
我现在还是关注通用软件技术多一些。

上个月,提出一个系统方案,被同事指“对业务不了解”,
但现在,他们正在向我的方案靠,简单来说,是他们对软件技术的不了解,
在一点点地学用我的方案。我让他们先写他们想做的东西,写出来,我问两个问题,
然后他们就不得不改;然后我再问两个问题,再改;终于,今天放弃了,
叫我定了方案再叫他们写。

我不否定行业应用的最重要性,但也不要否定软件技术本身的重要性。
我能一眼看出他们系统的扩展性、移值性、伸缩性问题,我相信,比我更牛的人,
能看出更多问题,解决更多问题。

原帖由 uniwg 于 12-11-2009 20:37 发表
还是行业应用的经验最重要,比如你做物流或OA,经验就不同了。基本的架子,实际都是差不多的。行话就是所谓BUSINESS LOGIC了,这个才是最可出售的经验了。

作者: key    时间: 13-11-2009 21:07
这是大忌。

原帖由 coredump 于 13-11-2009 10:20 发表
Uncle Bing's main problem is he want to learn a lot of things at the same time.

作者: 刘叔    时间: 13-11-2009 21:38
原帖由 四香油饼 于 13-11-2009 09:26 发表
牛叔就是牛啊。

帮主说的对,我就是任务开得太多了
谁让我啥都不懂呢


你想干嘛?

或者就是没事想折腾?
作者: michaelchin    时间: 13-11-2009 21:58
比如乔峰用太祖长拳也可以很牛
太祖长拳学得很快,但还是打不过乔峰
作者: michaelchin    时间: 13-11-2009 21:59
我是想说,练太祖长拳也可以练一辈子的,不一定要练如来神掌
作者: michaelchin    时间: 13-11-2009 22:00
其实我也不知道自己想说啥,我送报纸累晕了
作者: 四香油饼    时间: 13-11-2009 22:18
原帖由 michaelchin 于 13-11-2009 22:00 发表
其实我也不知道自己想说啥,我送报纸累晕了


你太逗了
作者: 四香油饼    时间: 14-11-2009 00:18
原帖由 key 于 13-11-2009 21:07 发表
这是大忌。



合并答柳树的问题:

不是俺花心,俺其实是没头苍蝇乱撞阿。

其实目的挺明确,就是想学嵌入式。但是因为基础太差,所以感觉到嵌入式很神秘,看到各种的陌生概念,不知道从何下手,也没有人可以请教,就只好瞎撞。
最早看arm原理什么的,学了半天arm汇编一类,但一直搞不清什么keil啦,ads啦,跟经常看到的什么boot loader啦、gcc啦、qt啦什么的互相间是个什么关系,感到越来越蒙。
另外还有那些应用程序阿,嵌入式的应用程序跟pc上的很类似了,但我也不会pc上的编程,然后发现qt说是夸平台的,那好,我学一个qt,就都解决啦,就开始学qt,然后qt学了一段,发现自己c++底子太不牢,需要重新回炉,而且慢慢弄明白了上面弄不明白的那几种东西之间的关系,发现linux是非学不可的。于是任务列表上又多了个linux学习.....linux一看,发现不光是很多指令要熟悉,还有sript,要用gcc,弄不好还得学会怎么写makefile.....连用个编辑器,都得重新学。。。。。

还不说现在还没接触到,将来嵌入式少不了的-----网络,什么tcp/ip等等等等的

现在虽然说大致知道了该先学哪个后学哪个,但未免感到有些绝望,太多了。

哪位达人给指条明路,像我这样没学过一点专业基础课,计算机基础基本为0,只会弄单片机的人,想达到能写嵌入式的应用软件和设备驱动软件的目(兼并包括能做pc上的简单应用软件),到底现不现实,该怎么走呢?

头大阿
作者: key    时间: 14-11-2009 00:43
不是俺花心,俺其实是没头苍蝇乱撞阿。

其实你有没有兴趣去tafe读半年书呢?,这样比你自己摸一两年效果会好很多

其实目的挺明确,就是想学嵌入式。

嵌入式是一个很无聊的东西,你可能觉得它很cool,
但除非你是做这个行业的开发人员,否则没有学的必要性。

你说你会弄单片机,事实上嵌入式的开发难度不比单片机高,但为什么你摆不过来呢?
原因就是现在的嵌入式开发概念已经pc化了很多,而单片机关注的还是电路控制。
但再往前看,你今天学了所谓的嵌入式开始,两三年后,你觉得自己似乎掌握了一点(皮毛),
发现嵌入式开发又变样了。你看Google Android、Apple iPhone等开发对于整个市场的改变吧,
现在Palm Pre的WebOS则开始用JavaScript。你那个cool cool的嵌入式开始还能cool多久?

所以感觉到嵌入式很神秘,看到各种的陌生概念,不知道从何下手,也没有人可以请教,就只好瞎撞。

其实你也是因为觉得嵌入式很神秘才想学吧?
这样只会让你走很多弯路。如果你真想学写程序,就不要这样走。

最早看arm原理什么的,学了半天arm汇编一类,但一直搞不清什么keil啦,ads啦,跟经常看到的什么boot loader啦、gcc啦、qt啦什么的互相间是个什么关系,感到越来越蒙。

如果你现在刚上大学,开始读计算机的课程,你可以这样东搞搞西搞搞。
汇编是一门基础课,但不是一门实用的课程。
C语言出了名的难学难用。
C++比C更难学更难用,你自己想想吧。

然后发现qt说是夸平台的,那好,我学一个qt,就都解决啦,就开始学qt,然后qt学了一段,发现自己c++底子太不牢

不是吧,有你这样学东西的吗?
你现在这样,和每本书看一次封面有什么区别?

简单来说,先好好想一下你要做什么吧。

1. 想学嵌入式开发。
这个不是目的,死了这条心吧。
2. 想做嵌入式开发人员
我估计你没有这样的想法
3. 想做嵌入式开发玩玩
玩有很多东西,没事不要找墙撞



原帖由 四香油饼 于 14-11-2009 00:18 发表


合并答柳树的问题:

不是俺花心,俺其实是没头苍蝇乱撞阿。

其实目的挺明确,就是想学嵌入式。但是因为基础太差,所以感觉到嵌入式很神秘,看到各种的陌生概念,不知道从何下手,也没有人可以请教,就只好 ...

作者: 四香油饼    时间: 14-11-2009 14:51
钥匙老师,钥匙我确实想做个嵌入式的开发人员呢?该怎么做?
作者: coredump    时间: 14-11-2009 15:03
原帖由 四香油饼 于 14-11-2009 13:51 发表
钥匙老师,钥匙我确实想做个嵌入式的开发人员呢?该怎么做?

key说的都很有道理,饼书你这样的确不是办法。就像你的目的是娶个老婆,但是你每一天都同时和超过10个美女暗送秋波,这样的精力分散,是很难把美女变成老婆的。
作者: 四香油饼    时间: 14-11-2009 15:10
原帖由 coredump 于 14-11-2009 15:03 发表

key说的都很有道理,饼书你这样的确不是办法。就像你的目的是娶个老婆,但是你每一天都同时和超过10个美女暗送秋波,这样的精力分散,是很难把美女变成老婆的。


那扣老师,我应该从哪个美女开始比较好一些?
作者: 刘叔    时间: 14-11-2009 16:54
标题: 回复 #21 四香油饼 的帖子
楼上指的都是正路,俺给你指一条歪路吧。

去新移民的论坛发帖子,找做嵌入式开发的程序员,给他20刀一小时,教你做。

方便、省事、直接、高效...................如果饼叔找到个女的程序员,哈哈,就更好了!


作者: 熊猫阿三    时间: 14-11-2009 21:24
有些人天生不是写程序的料,比如我....
作者: key    时间: 15-11-2009 08:34
如果你想做开发人员,即洋文所说的 developer ,你就需要踏踏实实一步步的来。

首先你要开始写最简单的入门程序。在PC机上写。如果你有指导老师,
或朋友,或老板,能给你具体的实践项目,就跟着项目写。否则,
就跟着数据结构、算法写。你必须能做到随手写出3k行代码(不要把自动生成的、或注释算进去)。
你可以选C, C++等语言。平台可以是linux,windows,mac,什么都行。

然后你开始跟据平台来写代码。比如linux平台,你弄本Unix Advanced Programming回来,
一章章地看,一个例子一个例子的写。这本书写完了,你的linux/c开发也就入门了。
对的,是入门了。

第三步,开发在嵌入式开发板上做程序。等到这个时候,你再找人问吧。

快则 半 年,慢则 3 年,你才能到达第三步。象你现在这样,叫做浪费时间,十年后,你还是现在这个模样,
区别就是,你已经没有当年的想法。

原帖由 四香油饼 于 14-11-2009 14:51 发表
钥匙老师,钥匙我确实想做个嵌入式的开发人员呢?该怎么做?

作者: key    时间: 15-11-2009 08:38
其实程序员是人人都能当的,
入门难度和扫地比相当,
工作难度和扫地比相当,
关键还是你有没有兴趣去扫地。。。。sorry,是写程序

写程序就如说话,走路,但问题是,
我们小时候有长辈小心翼翼地教我们走路,认认真真的教我们说话,
但从来没有人认认真真地教我们写程序。

原帖由 熊猫阿三 于 14-11-2009 21:24 发表
有些人天生不是写程序的料,比如我....

作者: someonehappy    时间: 16-11-2009 10:35
前面同学已经说了很多了,补充点个人意见。

看你21楼的描述,不知道你对整个计算机基本的体系是不是了解,也就是计算机硬件原理,操作系统,编译软件,等等的知识。因为看你的问题,似乎你更多的是一种全局性的迷惘,而不是针对某个具体技术的学习困难。

其实条条大路通罗马,很多人的学习道路都是不同的,这个不是个问题。如果你已经有项目或者具体目标在手,那就从这个具体的点入手,采用合适自己的学习方式,坚持下去。同时不断补充学习遇到的不了解的东西。但是坚持抓住主线,也未尝不可。

如果时间足够,也可以先从基本知识进行了解,不是去啃大部头的书,有时候通过网络来学习了解很快很有效率,有些东西等你大概知道它是干啥的了,你也就大致知道是不是必须在当前花时间去吃透它。花几个星期把你不了解的东西都有所了解,然后就可以从比较高的高度来确定学习的优先级,心里也不会感觉那么乱,也不会觉得有无止境的东西要学习才能达到最初的目的。

其实有时候,学习就象生活一样,要学会取舍,你不可能享受天下所有的乐事,你也不可能学会所有的知识。所以淡然一点,抱着活到老学到老的心态慢慢学吧。
作者: coredump    时间: 16-11-2009 10:48
标题: 回复 #30 someonehappy 的帖子
饼叔应该还是有一定的基础的,偏底层一些,但是不系统,然后看到一堆新鲜名词有点眼花缭乱了。专注嵌入式,是可以的,C为主,C++也不是必须的。值得一提的是,现在的手机软件开发已经很难算是传统意义上的嵌入式开发了。 倒是如果去做一些网络设备,比如路由器,防火墙,智能家电,工业控制之类的领域,嵌入式还是大有可为,而且技术上也都很传统,基本上不去赶什么时髦。但是做这类的开发,一定要手头有项目,跟着实实在在的做才能有收获,否则只能是画饼充饥。
作者: 四香油饼    时间: 16-11-2009 13:27
多谢这么多老师的慷慨指点,俺决定先攻克c++,让自己能写3000行的程序再说:)

等我程序写好了,再来向各位老师汇报
作者: playbug    时间: 9-12-2009 15:06
我觉得对于我们这些非CS科班出身的人来说,能实现自己的想法即可,
我的宗旨是能解决我的应用问题就可以了
最快的办法就是看代码了,比啃书强一万倍
没吃过猪肉还没见过猪跑么?
有了面向对象的概念和C++的一些语法后,找一些开源的代码看看
我以前光看书,仅仅MS的那个集成开发环境就很让我困惑了
屡次想拿下都铩羽而归
后来看人家做的东西,觉得原来如此啊
看得多了,理论就变成实践了
作者: elapsing    时间: 25-1-2010 22:22
其实软件开发除了写程序,还有很大一部分是工程方法,做任何软件,我觉得这个都是基本功。
如果是做一小软件,可以随意整,反正最后不行了大不了重来。但是一个大型软件,就不是仅仅“实现自己想法即可”。有一种说法:好的程序员效率是不好的程序员的10倍,有人甚至说团队里面有不好的程序员比没有这个程序员还坏。
我个人的感觉是,你工作在一个好程序员写的代码上,代码可以越变越好,但是如果你工作在一个坏程序员写的代码上,代码只会越来越坏,除非你重头再来。
作者: shenzy    时间: 25-1-2010 23:03
原帖由 四香油饼 于 16-11-2009 13:27 发表
多谢这么多老师的慷慨指点,俺决定先攻克c++,让自己能写3000行的程序再说:)

等我程序写好了,再来向各位老师汇报


作者: flug    时间: 26-1-2010 00:35
原帖由 四香油饼 于 16-11-2009 10:27 发表
多谢这么多老师的慷慨指点,俺决定先攻克c++,让自己能写3000行的程序再说:)

等我程序写好了,再来向各位老师汇报


今天已经2010年1月26号了,3000行的程序写出来了么?
个人觉得起码要自己敲20000行代码以上,不算自动生成的,才能说对写程序有了解。

随便考你个,以前我经常用这个玩公司的小朋友,
要求,从键盘读入两个数,程序计算这两个数的和,然后输出。
比方说,键盘输入1,2, 程序输出3
两个小时之内能出来就算合格。
作者: 四香油饼    时间: 26-1-2010 00:47
原帖由 flug 于 26-1-2010 00:35 发表


今天已经2010年1月26号了,3000行的程序写出来了么?
个人觉得起码要自己敲20000行代码以上,不算自动生成的,才能说对写程序有了解。

随便考你个,以前我经常用这个玩公司的小朋友,
要求,从键盘读入两个数 ...


55,最近正准备开始动手写第一个程序

俺来做这个题,请老师指点:

#include <iostream>
using namespace std;

int main()
{
   int a, b;
   cin >> a >> b;
   cout << a+b;
}

写的对吗?
作者: flug    时间: 26-1-2010 13:20
哈哈哈,当初哪些小朋友都会这么写的.

但是,我前面说了,如果你两个小时之内写出来就算合格. 你觉得这点代码够两个小时的工作量么?

提示下,在动手写程序之前, 最好先准备20组测试用例.

原帖由 四香油饼 于 25-1-2010 21:47 发表


55,最近正准备开始动手写第一个程序

俺来做这个题,请老师指点:

#include
using namespace std;

int main()
{
   int a, b;
   cin >> a >> b;
   cout  

作者: hoopoos    时间: 28-1-2010 16:22
从零开始,做一个programmer,可能几个月就够了。但是,要成为一个合格的engineer,那是要好几年的。
作者: GPS    时间: 28-1-2010 17:07
恕我直言。也就39#说的还靠点谱。别介意。
LZ想干嘛? 想追求?那我只好说,追求无止境,去问问那些大厨师,哪一个能把炒豆腐做绝的?没有!
如果想业余玩玩,估计不要一两周就可以写出个1+1=2的程序。
如果想找个工作,那纯粹是你能不能通过面试。如果你找JUNIOR,那和那“20组测试用例.”暂时还靠不上。
如果你已经是个PROGRAMMER,想提高,那我说,又是无止境了,20组测试够吗?也许不一定。
我要说的是不同的LEVEL形成个金字塔,看你往哪靠。
MS厉害吧,不也是三天两头一个PATCH吗,有人要他们先把所有的PATCH都做好了再卖吗?呵呵。
大街上那么多餐厅,每个有个一两个大厨,一些帮厨,依次下分,那洗碗的可能是没有炒菜文凭经验的学生,他们也叫IT里的PROGRAMMER。呵呵。
这坛子里很多高手,他们都是我的理想和追求,但我不能追上他们之后才去干活。
LZ你比我强不少,就是想太多了。先干着吧。
当年程序还要打孔输入时,估计没什么人要用20个例子去测试1+1=2的容错。只是慢慢有经验了以后,才逐步发展。放到现在也是,做程序,做出来是一个档次,不出错又是一个,死不了再高点。呵呵。WIN7会死吗?
作者: coolmate    时间: 16-2-2010 19:39
嘿嘿。我开始是95年,自学的C。然后是C++,然后是Delphi(不知道现在还有人记得么?)然后第一个大点的产品是企业管理软件,用powerbuilder做的(有人知道么?这也是一个功能强大的东西,不过是数据库方面多些),2000年左右干的,基本上照抄了某个商业软件的模样。哈哈哈。然后就没了,扔下了几年,玩了玩matlab,然后用C++写了些小的研究用的code。然后2007年还做了些java的code。后面就是C++和Qt了。

哈哈哈。油饼你明白我的意思了么?一通百通。学好一门,就好了。但是前提一定是要学精一点。




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/) Powered by Discuz! X3.2