如何抓取局域网数据包中,我发出去的数据包是“广播”出去的?不是和路由器“点对点”通信?别人不就可以抓包分析了吗?

中国领先的IT技术网站
51CTO旗下网站
业余爱好者如何学习编程
因为Aaron Swart 的自杀,这两天看了不少关于他的报道以及他自己的博客,对我触动最大的是尽管他一直在做技术相关的事情,但眼光和理想却远远超越了技术。
作者:zhuoqun来源:豆瓣网| 10:32
的自杀,这两天看了不少关于他的报道以及他自己的博客,对我触动最大的是尽管他一直在做技术相关的事情,但眼光和理想却远远超越了技术。他把技术当作推动 自由和社会变革的工具,所以 Twitter 签名也是 &Applied sociologist&, 而不是经常可以在程序员那里看到的
&Geek& 和 &Hacker& 等。我非常钦佩他的社会理想和为之做出的努力,然后开始思考自己可以做些什么,于是就有了这篇文章。
现 在有关编程的书籍非常多,网上也有很多教程,但大多都是针对职业程序员或者计算机专业的学生,对那些只想实现一些自己想要的东西的业余爱好者帮助不大。业 余爱好者并不想以编程为职业,也不想花太多时间去学习基础,他们只是想尽快做出自己想要的东西。这样的东西在专业程序员看来可能很烂,但我觉得非常有意 义。会编程的人越多,信息流动的渠道就越多,做出好玩的东西的机率也越大。
我的技术水平一直不怎么样,而且越来越业余,不过正因为如此, 我非常能体会初学者的痛苦,或许写这样的东西正合适。本文的目的是帮助业余爱好者扫清一些思想上的障碍,分享一些我的经验,并不会涉及太多技术细节,毕竟 每个人想做的东西和想学的编程语言都不同,不过后面会给出一些学习资料。
重要声明:本文只针对那些不想以编程为职业,只想学习编程以便自己做东西的业余爱好者。想要成为一个优秀程序员的同学请看这篇经典的《十年学会程序设计》。
思想准备:
1. 编程不难,至少做出一个能用的东西不难。别把它当回事儿。很多人之所以觉得编程很难是被专业术语和趾高气扬的程序员吓到了。别担心,业余爱好者不需要对自己要求那么高。
2. 编程不需要数学基础。没错,就算你数学很烂也能做出东西。大部分算法都已经有成熟的解决方案,可以直接拿来用,完全不用担心。我们的目的是做东西,不是研究算法和数学。
编程不会改变你的生活方式。你完全可以学习编程而不接受和它有关的文化。不一定要崇拜某位大神、阅读技术新闻或者参与社区,也不一定要不修边幅、熬夜工 作。如果愿意的话,精装打扮穿上最漂亮的衣服去编程也可以。反正不想成为职业程序员,不用担心因为「不像程序员」而被鄙视。
4. 有很多友善的程序员。程序员给很多人的印象要么是邋遢、木讷、害羞的书呆子,要么是性格怪异、智商极高的大神,其实大部分程序员并不是那样,只不过媒体和大众更偏爱怪异的东西。以 Linus 为例,在他的自传 《Just for Fun》 中提到:
「Linux 不是靠牺牲宝贵的睡眠时间换来的。事实上,如果你想听真话,那我就要说,我更喜欢睡觉。」
「在那个时候,只要一想到姑娘,Linux 系统就变得不再重要了。在某种程度上,今天也还是这样。」
瞧,这位大神其实大部分时间和普通男性差不多,更喜欢「睡觉」和「姑娘」。所以,如果真的遇到了无法解决的问题,完全可以大胆地去请教专业程序员们,一般都可以得到答复。
5. 习惯无知。无论学习什么东西,往往越深入就越觉得自己无知。这样的无知本身并不是坏事,它可以让你保持谦虚,但千万不要被它吓得不敢继续前进。及早适应无知的感觉,你并不需要全知全能才能做出东西,如果觉得困难,可以试着假装自己擅长编程 。
如何开始:
首先,完整阅读这篇文章:《你第一要做的是开始去做》(这篇文中翻译自 The first step is to start )。
如 文中说的那样,不要以「基础不够」、「知识不全」等借口停下来,一开始甚至可以先在纸上勾勒出想要的东西。当然,完全不懂编程肯定无法开始真正的创造,但 学习的时候不要抱着「先专心学习,学好本领再回来做」的念头。正确的做法是:只学那些最基础的东西,然后立刻着手去做,遇到不会的地方再去学。
没 有技术背景的人学习编程很容易被错综复杂的技术体系吓到,网上的教程中也经常会出现「一定要读这本书,非常经典」、「最好先有 XX
基础再看这篇教程」之类的警告,结果有时候会出现这样的情况:本来你只打算学习编写网页
,结果几天后莫名其妙地开始苦读《精通正则表达式》。为了能够专注于自己想做的东西,要十分警惕「学习」这件事情。尽量学习最少的东西,然后把时间都花在 创造上。当想要学习的时候,慎重考虑它是否会让你偏离目标,或者绕太远的路。这样做肯定会导致基础不够好,但我们是业余爱好者嘛,能尽快做出东西就行了。 如果你真的非常在意基础,说明你可能更想成为职业程序员,请返回参考前面的重要声明。
没有人天生就会编程,在做东西的过程中会不断学到新 的知识,然后就会发现自己之前的代码很愚蠢。这个时候你可能会很想推倒重来,或者从头改进之前的代码。要抑制住这种冲动,不然就会掉入代码优化的无底洞。 事实上,几乎所有的专业程序员都会对半年前自己的代码感到不满,而且一开始代码质量不好完全没有问题。举个例子,假如要在网页上显示 10 次 &I
love you.&,你并不知道如何使用循环,于是就复制粘贴了 10 次 &I love
you&。这样的做法或许很笨,但是你做出了想要的效果,对于业余爱好者来说,完成一个东西要比代码质量重要得多,不要为了这种笨方法而感到羞愧。
如何解决问题:
在 创造的过程中肯定会遇到很多问题,对于初学者来说,大部分的问题都是语法或者拼写问题,只要仔细检查代码就可以解决,少数摸不着头脑的问题也可以用
Google 找到答案。很多非 IT 行业的人平时都只是搜索中文,可能并不觉得 Google 比百度要好,但当你开始学习编程,就会立刻发现
Google 比百度好用得多,一般都可以在搜索结果第一页找到想要的东西。使用 Google
搜索的时候,请尝试用英文描述问题,或者直接把出错信息直接粘贴到搜索框。
如果实在搜索不到解决办法(这种情况对业余爱好者来说极为少见,请善用 Google),可以去 Stack Overflow 提问。提问的时候请注意描述好自己的问题,把错误信息以及相关的代码都写进去。 Stack Overflow 的氛围相当好,应该很快就会有人回答你的问题。比较不方便的地方是你必须使用英文提问,没办法,因为类似的中文社区并不存在。如果执意要去中文社区提问,那么我真诚地建议你使用女生头像和昵称,可以有效提高回复率,呵呵。
有 关编程的一个恼人的地方是,就算看书之后觉得自己掌握了,真正写的时候还是经常会出错。它只能通过实践来掌握,所以需要很多耐心。当你被折磨得想要放弃的 时候,或许可以换一种角度,以此为契机挣脱过去那么多年的学院派教育。想一想吧,我们在学校里待了那么长时间,几乎所有的学习路径都是「先阅读,再应用」 或者「只阅读,不应用」,是时候体验一下如何在应用中学习了。
面对批评:
有些人做出想要的东西之后就已经很满足,但有些 人可能会想要展示一下自己的作品并获取一些意见。因为业余,所以当专业程序员看到这样的作品之后可能会非常不屑,甚至大肆批评。这个时候不要自卑或害怕, 因为他们对作品的了解都是片面的。他们只是一味拿专业的技术标准来衡量,不清楚你只是想做出一个东西,不清楚你只是业余时间在做,不清楚你在整体上的考量 和妥协。作为这个作品的创造者,你才是专家,如果按照他们的要求,你可能永远都做不完。
之所以提到这一点,是觉得业余爱好者大都是自己一 个人慢慢自学,被打击一下说不定就完全放弃了,那样实在可惜。对于专业程序员的批评,如果有用就记下来,下次不要再犯就好,没有必要气馁或者把之前的东西 重写一遍。从无到有实现了自己的创意已经很了不起,不需要对专业程序员有什么交代。
注意事项:
1. 不要过度关注编程语言的优劣。很多编程语言都可以达到相同的目的,选中一个之后把它用好就是了。和别人争辩哪个编程语言更好是很多职业程序员的一大爱好,是他们生活的一部分。我们是业余爱好者,只要求工具够用,不需要像他们那样一定要用「最好的」语言。
2. 用不着关注国内的 IT 红人和八卦。对学习编程和做东西没有任何益处。(补充:这条可能带了个人情绪,请自行判断,但我关注了那么久觉得确实没有任何益处。。。 &_&)
不要自称 &Geek&,&Hacker&
或其它什么东西。当开始给自己贴标签的时候,就会试图表现得像那类人,束缚自己的同时还会做出许多愚蠢的事情。我们要做的事情很简单,就是掌握技术并做出 能用的东西,没有必要给自己贴任何标签。事实上,能做出东西的人比自称 &Geek& 或 &Hacker& 的人稀有得多。
4. 利用开源代码。感谢开源事业的蓬勃发展和无数程序员的无私奉献,使我们可以学习和使用别人的代码。当需要一些功能时,可以先去找一下是否已经有开源的实现,没有必要自己从头写。
5. 先找到自己想做的东西。不要为了学习编程而学习,那样就算记住了很快也会忘掉。如果实在找不到什么想做的,可以考虑给一些公益组织义务做一个网站,锻炼技能的同时还可以关心一下社会。
保持初心。业余爱好者拥有的最宝贵的财富就是初学者的心,也正是因为这份初心,才让代码质量问题变得并不那么重要。可惜的是,随着技术越来越熟练,初心会 渐渐消失,做东西的时候首先考虑的不是结果而是实现方式,当初那个满脑子想法苦于不能用技术实现的人不见了,取而代之的是一个精通技术却乏味的人。所以, 作为业余爱好者,应该把「完成作品」和「保持业余」作为首要目标,如果精通技术的代价是失去初心,那就不要精通好了,反正并不想以此为生。
学习资料:
由 于我的工作大部分是 web develop, 所以这里给出一些不错的相关资料。如果你想要做一个简单的网站或者 app,
那么这些知识够用了。也欢迎补充好的入门资料,我会不断更新。(之所以没有推荐其它方面的资料,是因为我并没有相关的经验,不知道其中优劣。编程可做的东 西非常多,比如 Arduino 硬件编程,有兴趣的可以去找一下资料,也欢迎补充。)
。在大学图书馆偶尔看到过这本书的英文版,很喜欢。本书非常适合初学者,里面很多插图,写得也很有趣。
一个很好的在线学习 HTML & CSS 基础的网站。
HTML & CSS 进阶,里面还包含了 jQuery 的学习。
这本在线电子书是 Learn Ruby The Hard Way 的繁体中文翻译,也是 Zed Shaw 写的 Learn XXX The
Hard Way 系列中的一本,之所以推荐 Ruby 是因为我很喜欢这门语言。本书非常注重实践,全书由 52
个习题构成,当你完成这些习题的时候就已经写了很多代码了。我觉得书中后面的一些习题(比如读写文件)可以先跳过,用到的时候再去学习。
备受推崇的在线学习编程网站,而且有中文界面,非常推荐。
和 Codecademy 类似的在线学习网站,评价不错。
很实用的学习 CSS 的网站。
最后再次提醒一下,如果你选择了学习编程,以后很长一段时期内业余时间都会被占据,而且期间会体会到很多痛苦。但是当完成第一个作品的时候,你就会发现之前的痛苦都是值得的,它们是创造不可或缺的一部分。
后 记:想要写这篇文章的时候激情满满,觉得自己在做好事,但写的过程中一直诚惶诚恐,非常担心文中业余爱好者可能面临的问题都是自己臆想出来的。毕竟在这个 行业待的时间不算短,早就变成了一个乏味的职业人士。如果你是一个想学习编程的业余爱好者,欢迎留言告诉我哪些担心是不必要的,以及漏掉了哪些东西,我会 及时修正或补充。
原文链接:【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
原创头条原创头条头条
24H热文一周话题本月最赞
讲师:1人学习过
讲师:35人学习过
讲师:0人学习过
精选博文论坛热帖下载排行
本书虽然是《网管员必读―网络应用》的改版,但它绝不是简单的修改,而是完完全全的重写,内容更实用、更专业。全书共9章,13个大小方案,...
订阅51CTO邮刊欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 15799 人关注过本帖
标题:想要学习怎样编写程序和制作软件
等 级:新手上路
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:8&&&
想要学习怎样编写程序和制作软件
各位前辈:
&&&&&& 我想要成为一个可以编写程序和可以制作软件的,我觉得想要编程,就要学习C语言,但我买了一本《C语言从入门到精通》,我看了一半,可是这一半我看的不懂。
想各位前辈推荐几本能通俗易懂的书,让我可以了解。谢谢!!
搜索更多相关主题的帖子:
&&&&&&&&&&&&&&&&
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
&&得分:10&
哪有一看就懂的
再一个有条件的话多买些书籍
毕竟作者不一样其讲述方式也就不一样了
选择一本你比较容易接受的讲解方式的书籍
/blog/1839276
学习是大事&&&吃喝拉撒睡是小事&&&其他的那都不是事
等 级:新手上路
谢谢!有了方向,我会慢慢摸索的
来 自:zzu
等 级:蜘蛛侠
帖 子:302
专家分:1032
xxx语言从入门到精通,21天精通xxx语言……这种一点创意都没有的书名讲的都不咋样
C语言易学难精,可以先看&C Primer Plus&,&The C Programming Language&之类的书,基础知识把握好了,可以开始学习数据结构(data structure)一般都建议学习外国较新的书,多泡论坛,新老帖子都可以浏览,尝试解决别人的难题,慢慢你会发现自己的进步!
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
楼主就是光看吗?
总有那身价贱的人给作业贴回复完整的代码
等 级:新手上路
我下了一个Microsoft Visual C++ 6.0,一边看一边编写的
来 自:江苏
等 级:论坛游侠
帖 子:42
专家分:131
学编程最重要的是要坚持,要能吃苦,还要对这方面有兴趣。 先从C开始是对的,但C/C++这条路不好走。&&&学C半年, 然后C++再学半年,之后学1年 Windows API就可以做软件了,但这是找不到工作的因为学的还不够多,你刚刚说想学做软件的么,所以MFC还是要学习的,有的API的基础MFC学起来容易。UML建表语言也要熟悉。推荐你一门C语言初学者书&&“C语言程序设计(谭浩强第4版)”刚学习最好是买本实体书,这个学起来事半功倍。
我只是一个自学的。
等 级:新手上路
谢谢,你的建议,我会买实体书的,
来 自:大汉
等 级:贵宾
威 望:17
帖 子:769
专家分:6207
学习编程不关要看还要写程序,看的程序不会比你自己写程序理解的深。
只要心是晴朗的,人生就没有雨天。
版权所有,并保留所有权利。
Powered by , Processed in 0.047400 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved最后登录17-3-11在线时间1039 小时赞0 注册时间10-8-16积分279帖子精华0UID176520
注册日期: 10-8-16
帖子: 98|积分: 279
赞助商广告
【新人求助】请问各位大大,如果我想在mac上编程应该学习哪些语言?需要具备什么基础?需要的参考资料?另外再帮解释下xcode& &obj-c 以及cocoa 各指的是什么…(新手问题弱智,不要取笑==)
最后登录17-5-27在线时间65531 小时赞483 注册时间05-4-23积分79328帖子精华172UID4
分享于 10-8-17 00:18:00
先学会c++ 在学cocoa
最后登录17-5-27在线时间3496 小时赞4 注册时间07-7-16积分2937帖子精华0UID47014
( ☆☆☆☆ )
分享于 10-8-17 00:41:00
xcode≈visual studio
cocoa≈.net
最后登录12-4-6在线时间65535 小时赞0 注册时间09-2-2积分7311帖子精华0UID90095
( ☆☆☆☆☆ )
分享于 10-8-17 07:27:00
最后登录14-8-12在线时间122 小时赞0 注册时间07-7-8积分218帖子精华0UID46596
分享于 10-8-17 08:54:00
买两本书,obj-c和cocoa,然后在机器上装着xcode,自己学习.
最后登录17-3-6在线时间301 小时赞0 注册时间09-8-5积分2256帖子精华0UID112841
( ☆☆☆☆ )
分享于 10-8-19 03:09:00
xcode是建立os下应用程序最快的办法
obj-c和c语言差不多的...
cocoa是c的超级 命令也比c多..好像最近也能在win上运行了.
还是c++比较普遍 学好它&&应该大多都能上手了[em07][em07][em07]
最后登录11-4-6在线时间584 小时赞0 注册时间10-8-31积分16帖子精华0UID179045
分享于 10-9-1 12:42:00
ls的解释有点不对。。。
我也是最近在学习mac的编程开发,说得不对大家指正
xcode 是mac下的ide,可以理解成windows下java开发的eclipse
objective-c才是c的超集,加入面向对象特性。若有c的基础,入门是比较容易的。
cocoa 可以看作苹果公司以objective-c构建的一套framework,一套开发框架,开发mac应用程序通常基于cocoa,iphone则基于cocoa touch[em01][em01]
最后登录17-5-22在线时间1105 小时赞0 注册时间09-2-12积分1913帖子精华2UID91319
( ☆☆☆ )
分享于 10-9-1 13:01:00
入门第一本书,learn c on mac,虽然没有中文版,但是里面的英文很简单,程序员应该都能看懂。
最后登录14-11-13在线时间166 小时赞0 注册时间10-9-6积分203帖子精华0UID180036
分享于 10-9-6 12:14:00
帮顶 [em01][em01]
最后登录11-11-6在线时间6205 小时赞0 注册时间10-5-9积分267帖子精华0UID159459
分享于 10-9-20 23:20:00
mac下学编程的路线图:
想开发怎样的程序:mac下运行的,还是iphone下运行的?
但是在这之前,先回答一些问题:
1:你熟悉c语言吗?yes to 3, no to 2
2:阅读c programming language
3:你熟悉objective-c吗? yes to 5,no to 4
4:阅读 objective-c programming language
5:你熟悉cocoa吗?&&yes to 7 no to 6
6:阅读 cocoa programming
7:mac or iphone?mac to 8 iphone to 9
8:find some open source project and get your hands dirty.
9:阅读 iphone sdk programming, human interface design guide, iphone application programming guide, memory management guide.
10: find some awesome framework, 比如说&&cocos2d, unity. 但是个人认为在这之前要恶补一些opengl es的知识
11:最重要的,get your hands dirty asap.当前位置:
&&>&&&&>&&&&>&&正文
游戏编程入门 - 做一名专业的游戏开发程序员需要学什么?
18:06:35&&&&
评论(15)&&&&
阅读(70234)
&&& 相对于网络程序员、数据库程序员,游戏程序员似乎显得更为时尚。游戏市场带来广阔前景和无限商机,游戏程序员作为技术的载体,其价值也在不断被放大。
在游戏方面,大致可以将技术划分为如下几个模块:游戏架构、图形图像、图形特效、游戏逻辑、游戏界面、人工智慧、声音音效、网络连接、系统优化等。
分工细致的团队会将游戏程序员按照每道工序而分为:图形程序员、声音程序员、人工智能或游戏关卡程序员、物理程序员。
与传统的应用软件编程相比,游戏编程具有自己鲜明的特点:更加强调计算机图形学的知识和计算机资源的高效利用,这也成为广大有志于进入游戏编程行业的程序员的入门门槛。不少人认为,单机版游戏比网络游戏要来的简单,通俗点说,网络游戏 = 单机游戏+网络。单机版游戏需要在情节、逻辑和AI方面下工夫。网络,技术核心往往在于服务器端技术、客户端的稳定性、反外挂技术等等。单从程序员角度上讲,我们的平均水平离欧美的程序员的平均水平差距还是很大的。比如3D游戏引擎授权已经演变成了赢利的重要来源,但是市场上流行的几大3D游戏引擎都来自欧美。随着国内游戏公司正在努力找到了良好的赢利模式,开发人员薪资水平的大幅度提高,肯定也会吸引大量专业的高水平程序员加入。不少资格较老的程序员都是带着热情入行,也使得更加规范,人员更加职业化。
游戏编程新人求职功略日资游戏企业比较喜欢招用刚毕业的新人,所以就要求新人们在学校里学好软件课程。欧美公司一般希望招聘有项目经验的人,即使不是行业中,若有其他非游戏编程的工作经验,也是相当受欢迎的。
如果没有游戏编程项目经验,良好的编程素养是另一大重要素质,也就是编程的基础是否扎实、学习能力是否很好、对游戏的设计是否有感觉。要获得一个程序员职位,就千万不要忽略了你应聘时用的Demo,因为这里面包含了你对游戏的感觉与领悟。
要胜任游戏程序员,还必须做到以下几点:
1.热爱游戏。激情成就事业,游戏程序员的与众不同就在于,除了研发人员应有的理性之外,还必须对游戏有着无限热爱,如果连自己对游戏都提不起兴趣,又怎会做出让别人感兴趣的游戏呢!当然,若是只有热情那就不能正确理解这个行业,有时反而会做坏,比如在游戏中掺杂过多的个人意愿,忽视用户的需求。
2.扎实的基础。要成为一名合格的程序员,要熟悉包括C语言或C++语言、数据结构、编译原理、算法等计算机知识,同时数学基础也是非常重要的,这些在编制核心级的程序时往往会起到相当大的作用。&&&&
3.创新能力。作为游戏程序员,创意是灵魂。计算机本身就是发挥创意的好地方,若能将捕捉到的新事物揉入创意并应用到工程项目中,其中所含的经济价值将不容小视。
4.团队合作交流。程序员的不擅交流似乎已经成为业内公认,但对于游戏程序员,任何个人的力量都是有限的,在工作中,一个成功的软件来源于团队的精诚合作。团队精神正是程序员应该具备的最基本的素养。要知道,游戏程序员不单纯是技术的实现人员,更是游戏参与者。
职业生涯之晋升通道程序员(Programmer)——主程序员(Main Programmer)——技术总监(Director)如果要做核心程序员或者是leader就需要技术+游戏天分,否则只能做一些纯技术方面的工作。
“钱慢慢”其修远兮,游戏人才炙手可热,勤勤恳恳钻研技术的游戏程序新人,入行月薪3000+。当然也有入行高薪的,资历深厚的技术人员月薪8000+,对于拥有2年以上经验的专业人才,年薪10万以上,高薪是没有封顶的,不过很多游戏程序员还是在付出与收入不平衡中寻求着下一个出口。
  国产原创游戏低迷呀
  国产原创游戏低迷呀
  国产原创游戏低迷呀
  天涯明月刀欢迎你
游戏程序设计相关文章

我要回帖

更多关于 抓取局域网内数据包 的文章

 

随机推荐