大一学生迷茫,请神人给些意见,学计算机,

2011-11-12 01:04:27 +08:00
 money
大一,计算机专业,无基础,怎么办,想从事编程,神人能否推荐些书籍,入门的,小弟感激不敬
5637 次点击
所在节点    问与答
48 条回复
yyfearth
2011-11-12 15:00:34 +08:00
@cloverstd 我喜欢C#,不喜欢.net
gonbo
2011-11-12 15:53:21 +08:00
龙书,强烈推荐这本书。
cloverstd
2011-11-12 16:09:18 +08:00
@pagict 我当初想到书店买C Primer,可是没找到。就买了一本《C++经典入门》。里面有很多印刷错误吧,应该是印刷错误。
e6nian
2011-11-12 16:20:14 +08:00
github fork any project you interest in, then pull request.
zztczcx
2011-11-12 16:33:45 +08:00
linux k&R的c 剩下的 就是喜欢什么学什么吧。
glume
2011-11-12 19:09:43 +08:00
一个教授教我的:学好数学,精通C/C++,再说其他的就容易多了。
koto
2011-11-12 19:13:05 +08:00
@yyfearth 这位仁兄说的最在理
myrual
2011-11-12 20:14:15 +08:00
@glume 学好数学是对,这是一种十分有必要的思维投资。
精通c/c++没必要。
了解业务才是最重要的。
顺便要说一句,c语言没啥可精通的。完全的面向过程编程。汇编语言的美容版。
github上可Pull的项目真多,
qianleilei
2011-11-12 20:36:42 +08:00
@gonbo 龙书易学么?
perrywky
2011-11-12 20:39:53 +08:00
多写点程序
glume
2011-11-12 20:48:08 +08:00
@myrual 我其实后来也没精通c/C++;但教授的意思不是说要非要拿c/c++干什么,他精通的意思是学会程序的思路和方法,还有应用的对象及环境。如果再学习其他语言就非常容易了。另外,作为学院派的思路,从基础的底层的根本的东西开始,更有利于成系统的获得学习成果,但这个过程比较缓慢,需要坚持。恰恰我就是在这方面吃了亏,想进一步提高自己的业务水平终究绕不过去,但现在实施起来困难就大多了。我就觉得,不停的做项目,提高太缓慢,工作内容长期重复。人就停在这个水平上了。
Anylei
2011-11-12 21:42:00 +08:00
其实我感觉吧,就三个:1,培养兴趣。2,多看书。3,多折腾。
myrual
2011-11-12 21:59:35 +08:00
@glume 不停的做项目不一定提高慢,如果一直做有突破类的项目,而且基于一套代码的话,其实可以很容易的发现代码中可以重构和进化的地方,而进化和重构的需求就来自于不断增加的业务逻辑。
如果你觉得进步慢,那么可以试试业余时间写点什么代码,坚持一年下来其实也可以学到很多。举个例子:
我用python测试日常业务,刚开始只是尝试一下可能性。偶尔用Python解决了一个棘手的问题后开始用工作上的片段时间持续做了快3年(从不在家做)。期间的重构不计其数,目前基本上team里可以用来做很多事情了。
这段过程给我的经验是:
I 重构可以让烂代码慢慢成长为好代码,会让你心情愉快。
有些地方不对,重构一下感觉爽了。继续发现不对,继续重构。
反复重构会让后期的维护难度成指数降低。现在基本上添加新功能越来越直接和简单。
II 为了把某些目标做到最好,就必须舍弃其他目标。
如果我把日常片段时间用来织微博和闲逛而不是写代码的话,那么以上两个都只是存在于看书的时候获得的知识,很快的机会消失在记忆里。而不是变成可以指导我的信念。

感谢《松本行弘的程序世界》,让我对面向对象技术有了根本的认识。我终于可以把我之前的经验和面向对象技术链接起来了。
利用过去一周里的碎片时间,我基于vb.net的面向对象技术实现了测试工具的新手入门包。
这个过程更加有趣,因为我必须从0开始了解vb.net中面向对象有哪些可以用来实现我的想法。
同时必须不断的重构代码以实现更好的DRY。
在使用vb.net的过程中我意识到:
只有单继承。
vb是一个需要提前知道数据类型的语言,我大概是被Python惯坏了。
为了做更好的抽象和DRY我还用到了接口。
我以前从没想过我这样一个用c语言写嵌入式代码快10年的人竟然可以这么快就用来上了面向对象技术,我曾经以为我落伍了。
目前这套代码展示出的业务表述能力和工具易用程度已经让我的同事十分Happy。

写了很多,其实是想说,学习,思考,实践是一件终身要做的事情,把无聊的时间挤出来做有意义的事情对自己很有好处。只要坚持做,收获很多。
yqjun
2011-11-12 22:02:00 +08:00
如果我大一想你这样想就好了,加油!
gonbo
2011-11-12 22:12:10 +08:00
可以搞一些 增加自己自信心的事情,比如搞路由器,搞openwrt,搞linux,让路由器能够离线下载东西,让路由器能够自动翻墙,帮同学解决一些问题,也能挣个生活费,也能够增加自己自信心。

任何时候,都要有一颗觉得自己一定要牛逼的心。也就是要追求卓越。
pagict
2011-11-12 23:11:19 +08:00
@cloverstd 去图书馆找找,去网上down下来,京东什么的上面买,都好嘛~不过我觉得吧,这种经典的技术教材,还是要有一本属于自己的纸质书,可以放在案边随时查阅。把C弄好了,对数据结构也会有一个较深层次的理解。然后再看些面向对象CPP,Obj-C什么的,想深入底层就学汇编啦,面向网络就Java啦
zythum
2011-11-12 23:57:01 +08:00
@yyfearth 那现在不是很悲剧。你用的都是.net ...
iwege
2011-11-12 23:57:19 +08:00
一般来说就是先培养玩和折腾的精神。架上linux,有什么不懂的直接上google。学会知道“没有人能帮你觉得这个问题,一切只能你自己来”。这期间对于代码就是:看,改,运行。当年学php就是这么过来的,啥书都没看。个人是不推荐直接看书,没问题看书相当于死读书,不过虽然没效率但是理论很强...所以楼主自己选择了..

等到了一定阶段你想要提高办事效率了,就可以开始研究诸如架构啊,不同程序语言的高级特性啊之类的了。首推《unix编程艺术》,其他的就是各自语言的电子书,网上多的是,看多了之后你就会发现那些书架构都差不多,前期if else,数据类型,后面语言的高级特性之类的。

其实现在这个时代对计算机学科来说很好了,github上一堆的代码,开源在那个地方就是让你看的。arduino开源硬件,入门240,500算是一套比较完整的了,可以拿来入门下硬件方面的知识。我学过来的感觉就是要解决问题,所以自己会在生活中找问题,然后想办法用我所知道的解决,顺便熟悉相关的代码。不解决我实际问题的代码,就算写的再优秀都提不起兴趣看。所以很喜欢linux下面一堆的问题...
money
2011-11-13 00:01:25 +08:00
@iwege关于代码,编进去之后,运行发现并不是自己想要的,改吧,不知道怎么改,关键没感觉,学的少,咋办
iwege
2011-11-13 00:05:33 +08:00
@yyfearth 这话说的...我认识一个,妹子没断过...

所以楼主看到这样的例子,就千万别选c#,没事多学点c,python,ruby,js,节省出来的时间多去动漫展~
:D
其实关键是微软的玩意大多数开源的代码少,不利于早期阅读和学习,其他平台兼容性差,自成一套的时候多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/21271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX