有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 4738|回复: 103
收起左侧

[闲聊/讨论] 编程从哪里学起【个人见解

 关闭 [复制链接]

签到天数: 4 天

连续签到: 1 天

[LV.2]偶尔看看I

48

主题

89

好友

1万

积分

抚琴台 · 羽徽

积分
15767
发表于 2012-12-6 21:15:44 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
本帖最后由 ladace 于 2012-12-10 20:57 编辑

于是这么多人回就重新补充下内容= =

二湿凶@Yukine 说要学要学编程混饭吃,于是有了这个帖子。。。按照个人的理解就写了些
话说做码农苦逼至死,而且没有妹纸,搞不好还会猝个死,入行要慎重啊。。。。

既然目的是混饭吃,那么考虑哪个编程语言比较火。呃……老实说一直没怎么关注过,所以也是只好查查网上的内容再加上平时自己看的一点东西。
然后主要有这么几个混饭的方向:网站开发前端工程师,后端工程师;软件开发;移动开发;游戏开发

话说二湿凶似乎已经把Pascal什么的搞得很熟络了,其实可以直接学一些职业技能了:

  • 前端学javascript和HTML。也有可能会做flash学习ActionScript,不过如果已经会Java和Javascript的话,这个就很好学,因为AS差不多就是包着Java皮的Javascript。
  • 后端建议学Ruby on Rails——虽说开始火的时间大约过去了吧。最近兴起的是node.js,是javascript语言,目前变动挺大的,而且貌似没有什么特别给力的网站用它开发,持观望态度,可以学学说不定就吃香了。然后还要学习一些数据库的概念和操作。Python也可以开发后端,也可以学学Erlang,不过Erlang不太适合初学而且很少有人用,但它其实就是为后端设计的语言。个人非常喜欢Ruby,纯对象的语言,而且很好地把函数式语言的思想融合了进去。【补充:传统后端语言就是ASP,PHP,JSP。会有人用是可以沿用旧框架的关系,不看好这些语言。呃……想找活的话还是学php吧。。。为此专门查下知乎:http://www.zhihu.com/question/19573703
  • 软件开发还是Java为主吧,还有Python【补充:做Windows平台的话C#+.NET应该是最好用的(C#和.NET只能在微软的东西上使用;也可以C++,不过C++开发效率会偏低的样子
  • 移动开发也是Java开发Android;Objective-C太傻×了还是别学了(除非想主要做IOS),想顺便开发IOS的可以用C++或者一些脚本语言。移动开发应该挺热门的,比较适合打工。【至于开发WinPhone和Surface就学C#
  • PC游戏开发:(补充)其实我最关注的就是游戏开发,不过感觉这个算是挺特别的一项了,情况比较复杂……因为二湿凶貌似不想干就没写进来。游戏开发一般就是上引擎了,看用什么样引擎使用什么语言吧。做引擎开发的职位基本就是C/C++。在引擎上层开发就可能会写lua或者javascript脚本之类的。或者自己独立开发——国外很多独立游戏都用C#+XNA一套东西开发,还可以发布到XBOX上卖钱。自己做的话有很多开源引擎(http://en.wikipedia.org/wiki/List_of_game_engines),有大有小,基本都是C/C++写的,有一些还会有多语言绑定,不重视效率的话推荐用lua+某个引擎来写。这种基本就是C/C++,或者根据引擎选语言。


如果学习Java的话,把Java搞熟以后,可以学习scala,一个函数式语言,算是Java的儿子吧=-=,跑在Java虚拟机之上的,所以可以做Java能做的任何事。


慢慢学慢慢玩也行,学习很多门语言然后领会不同的思想兼容并蓄,看你geek不geek了。
  • 对于秀技术黑电脑等底层技术感兴趣的话,就去先搞C。。。C虽然是很多人的入门语言,但深入了你会发现是hardcore模式。C++也是hardcore。。所以我不建议非计算机专业的人用C入门。。。。学C的话就是往系统工程师靠近,能够让你很好地了解系统层次的东西。
  • 喜欢数学喜欢逻辑的话就学lisp吧,对于未编过程的人学lisp应该也能很好上手。而且lisp可以很好地培养你函数式编程的思想,使得用其他语言也能写出优质的代码。如果英语够好的话我推荐学lisp的变种racket,这个没有中文资料但是有些国外学校是用它授课的貌似,下一个drRacket慢慢玩,它里面也有teach pack,而且图形界面画坐标图什么都能干。
  • 或者先学一些过程式语言。javascript和lua其语法的东西很少,内核很精炼,作为第一个语言学是不错,但是对初学者而言找不到好用的程序库可能干不出什么厉害的事。与之相比则是python,强大的脚本语言,有很多程序库支持,而且中文资料很多。其实个人不太喜欢python2.7之前,虽然没正式学过但是初次接触后就看得出命名和设计的一些混乱。。Python3.0似乎改进了很多,但是我没关注过。
  • 然后学习面向对象思想和一些设计模式、重构相关的东西,其实对于二湿凶就可以直接到这步了;学习Java和Ruby以及Python面向对象的部分。老实说Ruby和Python学习一样差不多就够用了。
  • 如果有兴趣的话,最后可以学习进阶版Lisp(Lisp的宏)和Haskell。



关于通用编程语言,在我眼中简单划分成三大类:
  • hardcore的系统语言,就是C/C++,汇编,Pascal也算吧。
  • 一般脚本语言,大部分都是面向对象+动态类型
  • 函数式语言 主要是这几个:Lisp,Haskell,OCaml,Scala,Erlang


每一类里学一个就算是领略了通用编程语言的全貌了,看你有没有兴致了。

结果Java没有归类到任一种= =嘛。。。。


至于如何设置目标。。。考证什么的。。实在是不清楚。。。。啊。。。写了这么多。。。看着办吧。。。。。这是非典型码农培养方案。。。。轻拍

另外编程语言对开发效率影响还是挺大的,要找到最适合自己的语言。顺便推荐几本书,Hackers and Painters了解lisp思想,Thinking in C++或者Thinking in Java可以让你了解面向对象思想,然后seven languages in seven weeks了解各种不同的编程语言,里面每个语言都很独特的

其实关于编程有两个正交的方向,其一是算法,其二是软件架构设计。算法比较硬核,是解决小而困难的问题的,看《算法导论》一本足够。而软件架构设计则要看《设计模式》,《重构》等,是教会别人如何构建大型系统的。软件架构设计其实跟编程语言设计是有一点像的,都是讲如何组织更合理的逻辑,而个人认为完美的编程语言其实是不需要设计模式的,设计模式只是为了解决编程语言的不完美之处而产生的。所以学习不同的编程语言也有助于加强软件架构能力。此外,对新的程序库的学习能力也很重要。这两个能力是往上混的关键技术能力。


评分

参与人数 3宅魂 +1 宅币 +31 贡献 +4 收起 理由
风音洛洛 + 10 + 2 o(* ̄▽ ̄*)ブ 发糖
_Nozomi + 18 + 2 o(* ̄▽ ̄*)ブ 发糖
没糖给你了 + 1 + 3 o(* ̄▽ ̄*)ブ 发糖

查看全部评分

对不起,这不是你期待的明天。我游戏怎么还没做完
回复

使用道具 举报

该用户从未签到

28

主题

103

好友

9783

积分

技术宅认证程序员

苦逼,受剥削人民

积分
9783
发表于 2012-12-9 12:34:42 | 显示全部楼层
首先你直接无视.net 让广大.net程序员情何以堪...
后台也是 php,jsp,asp,asp.net都被你无视了么....

学编程还是要找到自己的兴趣才行
没兴趣的话 任何教程 任何指导都毫无意义

例如我有一台手机/平板   我想给我的手机上做一些小软件  
我最开始做的是生活费记录的程序
做出来很有成就感
在PC平台以外任何平台跑的程序 对于初学者来说 都非常有成就感(包括web)
所以我推荐的是在学习了相应语言基础的情况下
尽量先体验移动平台开发
会增加很多兴趣
最后再回到Windows来  或者Linux  学习桌面编程

JS不怎么适合作为入门的语言学习
因为他面向对象的方式和其他大多数语言都不同  用的是原型  这点不怎么适合作为入门语言来学习
感觉动态语言入门不怎么好  当然只是我的感觉  这点倒是没啥关系 Python和Ruby都挺不错

现在的几个静态语言都挺适合做为入门的语言了
C#,Java
我觉得IDE对于一个初学者来说非常重要
这就是我一开始选的是C#而不是Java的原因

本来我是想弄Java的  但是那个开发环境配置和弄IDE真是把我烦死了 弄了一个下午都没弄好  就果断抛弃了Java选了C#

评分

参与人数 2宅魂 +2 宅币 +23 贡献 +2 收起 理由
MAY_五月 + 2 + 5 ……最后一句太TM有 同感
_Nozomi + 18 + 2 →_→大牛

查看全部评分

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

43

主题

44

好友

9万

积分

第四章

请叫我BAI桑

积分
92044
发表于 2012-12-6 21:20:49 | 显示全部楼层
=1445= 程序猿

点评

魂淡淡o( ̄ヘ ̄o#): 5.0
魂淡淡o( ̄ヘ ̄o#): 5
桃纸你一直都在技宅上泡着诶。。。。  发表于 2012-12-6 21:56
Mi manchi.
回复 支持 反对

使用道具 举报

该用户从未签到

31

主题

101

好友

1万

积分

第一章

甘薯SAMA

积分
13932
发表于 2012-12-6 21:22:33 | 显示全部楼层
看代码要看瞎了哭
这里是 甘薯  <font color=&quot;Lime&quot;>
回复 支持 反对

使用道具 举报

该用户从未签到

43

主题

44

好友

9万

积分

第四章

请叫我BAI桑

积分
92044
发表于 2012-12-6 22:00:12 | 显示全部楼层
=1445= 其实只是定点上来看看~木有一直泡着一说

点评

你这点定的真准。。。。。盯——  发表于 2012-12-6 22:35
Mi manchi.
回复 支持 反对

使用道具 举报

签到天数: 17 天

连续签到: 1 天

[LV.4]偶尔看看III

298

主题

139

好友

6万

积分

荣誉会员

积分
66622
发表于 2012-12-6 22:19:39 | 显示全部楼层
大牛说得不错嘛
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

21

主题

44

好友

1万

积分

第一章

积分
16701
发表于 2012-12-6 22:30:56 | 显示全部楼层
目测我定位在hardcore和后端之间的感觉。。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 4 天

连续签到: 1 天

[LV.2]偶尔看看I

48

主题

89

好友

1万

积分

抚琴台 · 羽徽

积分
15767
 楼主| 发表于 2012-12-6 22:45:53 | 显示全部楼层

那。。。C, C++, Makefile, 鼓捣linux,Java,Ruby,《设计模式》,《重构》,还有你可以看看《Effective C++》了解下C++有多挫,啊还差一本理解动态语言特性的书。。总之我给你个关键字,closure(闭包)。。。就这样~
对不起,这不是你期待的明天。我游戏怎么还没做完
回复 支持 反对

使用道具 举报

签到天数: 4 天

连续签到: 1 天

[LV.2]偶尔看看I

48

主题

89

好友

1万

积分

抚琴台 · 羽徽

积分
15767
 楼主| 发表于 2012-12-6 22:49:23 | 显示全部楼层
Whisper1166 发表于 2012-12-6 22:19
大牛说得不错嘛

点评

岳母大人卖萌勒~  发表于 2012-12-7 09:47
对不起,这不是你期待的明天。我游戏怎么还没做完
回复 支持 反对

使用道具 举报

该用户从未签到

21

主题

44

好友

1万

积分

第一章

积分
16701
发表于 2012-12-6 22:51:32 | 显示全部楼层

以前

ladace 发表于 2012-12-6 22:45
那。。。C, C++, Makefile, 鼓捣linux,Java,Ruby,《设计模式》,《重构》,还有你可以看看《Effective ...


或者是熟悉基础算法的基础上。。。做前端和后端。。。然后又偶尔会用核心的方法去解决一些问题。。。就跟我以前用汇编语言实现pascal不支持的功能一样。。。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

11

好友

2689

积分

禁止发言

积分
2689
发表于 2012-12-6 22:56:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

746

主题

732

好友

10万

积分

吃货

积分
100198
发表于 2012-12-6 23:14:46 | 显示全部楼层
LA酱我对你产生仰慕了

搞单片机的时候学的C,然后直到现在都没怎么学过别的语言感觉好惭愧啊
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

746

主题

732

好友

10万

积分

吃货

积分
100198
发表于 2012-12-6 23:20:59 | 显示全部楼层
为什么Obj-C很傻X求详解

最近在iTunes U上看到iOS开发的公开课还犹豫了下要不要交作业
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

120

好友

1万

积分

第一章

积分
10872
发表于 2012-12-7 00:26:50 | 显示全部楼层
本帖最后由 ApfelZaft 于 2012-12-7 00:31 编辑

给学lisp的大神跪了。。。.NET在一边画圈圈。。PHP和JSP被华丽丽的无视了=。=…广大网络工程狮伤不起。

点评

= = 吾辈错了。。。。.NET忘记了。。。不过PHP什么的是打算无视。。。  发表于 2012-12-10 16:50
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
发表于 2012-12-7 00:38:42 | 显示全部楼层
作为计科的学生表示压力山大。。。表示我们专业没xx开发这种选项。。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

0

好友

1165

积分

Continue

积分
1165
发表于 2012-12-7 00:41:13 | 显示全部楼层
个人感觉.NET是比较好上手的开发环境- -虽然在跨平台方面比较坑……
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(基宅) ( 粤ICP备18082987号-1 | 浙公网安备 33010902001746号 )

GMT+8, 2024-6-9 21:20 , Processed in 0.321031 second(s), 48 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表