• UID9128
  • 登录2016-04-14
  • 粉丝0
  • 关注0
  • 发帖1
  • 主页
  • 金币38枚
可爱的高小七 发布于2016-03-07 15:52
2/1749

学习完这些后,做编程不是问题

楼层直达
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各异,然而一旦掌握其中之一,其他的也就迎刃而解。

作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发各种神奇的软件啦。

步骤  1确定目标

学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到最后也无法确定自己的方向到底是什么,所以,在你开始前,最好先想清楚,你是想成为一名程序员,还是游戏开发者,还是机器人专家?

2选择一种编程语言

初学者一定要从主流语言开始学习,比如中级语言C和C++。这两种语言是任何一名合格、专业的程序员都必须掌握的,因为它们称得上是软件开发界的主流。但是最好不要从高级语言开始学,如Java,因为这些语言对于初学者来说难度未免太高(高级语言可以以后再学,但是C语言和C++应该作为你的基础)。然而对于完完全全的门外汉的来说,可能C和C++都有点困难,那么你也可以从Python开始学,这种语言被大家广泛认为是适合初学者的。

此外,每一种语言都要学习至少一年。要熟悉编程范式,尤其是面向过程及面向对象这两种;要广泛阅读,多用编译器及IDE(网上有许多免费的)练习编程。

掌握一种语言后,先不要急着运用,而要去多买些数据结构方面的书来看,学习搜索、分类、二叉树及链表创建等概念。因为无论你是要制作游戏还是开发软件,数据结构都是必须要考虑的。

随后,你就可以开始学习更加高难度的语言,如Java。对于进阶学习者来说,可能还需要学习分而治之(Devide-and-conquer)、贪婪算法(Greedy Method)及回溯(Backtracking)等计算机算法,这又要花上至少一年的时间。

3热爱数学

许多人都由于这样那样的原因而对数学颇不感冒,而作为一名优秀的程序员,却要整天与一箩筐的数学问题打交道。

正如你所见,学编程真的是说起来容易做起来难,而它的难并不在于你对一种语言的了解程度,而在于这种语言牵扯到的数学问题。编程中的大多数问题都能在数学模型(如斐波那契数列、弗洛伊德算法、 傅立叶级数等等)中找到端倪,更不用说数学公式在解决编程问题中的广泛应用了。

所以,现在开始,去学习各种公式及其特性吧,还要仔细钻研算术及微积分,因 为不懂数学,就好比巧妇难为无米之炊。

4要保持内在的动力

记住,罗马建成非一日之功,所以不要在短时间里给自己填压太多知识。

学习编程语言并不容易,因为这是一门需要时常调用逻辑思维的知识。你要做的,就 是理解程序背后的逻辑,然后不断练习,直到熟能生巧为止。如果你只是死记硬背一些程序,那么你就错过了学习过程中的乐趣,而且一些概念你也未必真的理解。

所以,学习编程需要不断地挑战自己,但也不要操之过急。

5要有耐心

有时,即使是卓有成就的程序员也会被简单的小问题难住,所以,遇到问题时,一定要让自己放松下来。找张草稿纸,想想有什么现成的公式可用,或者自己 想一个公式出来。你看,这就是你为什么要学习数据结构和数学。在成为熟练的程序员以前,一个人往往需要花费大把的时间来构思用于解决特定问题的程序。这一 过程中,你可以去Project Euler或者Codecademy这样的网站上看看,上面有简单的编程作业及教程,可以用以练习并提高技能。

6绝不轻言放弃

如果你在编程过程中经常粗心犯错,那么整个过程就会变成一场旷日持久的折磨,然而一旦问题解决,所有的沮丧都会烟消云散。在学习各种算法(傅立叶级 数、向量、边界问题、线性代数、矩阵)的同时,也要注意休息。在解决特别复杂的问题时,要按时放松大脑,让困扰在心头的难题暂时转移到潜意识中。另外要有 合理的工作计划,当你编程编到倦怠的时候,就可以小憩一会儿,或者出去散一会儿步,但是永远不要说放弃。

7成为高手

学到这个阶段,你就可以试着去教教别人,并且向别人展示你制作的应用。如果你认识比你更厉害的人,就要与他分享你的想法和问题,这样会使你积累更多的经验;你也可以模仿诸如文本编辑器、windows软件等专业软件来进行自主开发;积极参加相关竞赛来挑战自我。

懂得一种编程语言是很赞的,但更赞的就是懂得多门语言,这不仅仅意味着你的“工具箱”里有了更多的“工具”,更是意味着你掌握了更多解决问题的方 法。因为不论你惯用哪种语言,懂得其他语言总是能使你更好地了解常见的抽象概念及问题。所以,有条件的情况下,尽量多学几种语言,最好是学习两三种具有不 同设计原理的语言,如Lisp、Java及Perl。但是每一种都要用心学。

8广泛阅读

许多高水平的程序员阅读量也十分惊人,他们也往往会在输入第一行代码前深思熟虑一番。所以,你一定要多阅读、多思考。每周都要检查一次自己的作品 (平时要养成保存代码的习惯,这样日后才能复查、反思);还要多买编程方面的好书。购买的书必须是最值得一看的,而并非是最畅销的。永远不要盲目地追随某 一种资源,因为那样只会让你的眼界变得狭隘。一旦你掌握一种知识,就要仔细钻研其用途及改进的可能。

9去培训中心参加培训

如果你觉得自学效果不理想,那就来咱华清远见程序员学习吧!

11勤加练习

要养成用编程解决问题的习惯,如果你能自己发现生活中需要解决的问题的话最好。

学会利用参考材料。即使无法记住所有的知识也不用觉得难为情,真正重要的是你知道去哪里找参考资料。在这儿推荐大家一个不错的嵌入式安卓软件开发交流群177836540,里面有很多学习资料供大家参考。编程之前也可以先打打草稿来构思可能的解决方法,然后去问问别人的意见。教学相长。因为在教别人编程的同时,你不仅会对既有的知识更加熟悉,也会帮助你从其他的角度来看待问题。

光看教程是不足以把任何一门编程语言学到家的。所以,你要尽量去找些志同道合的人,然后互相学习。多多浏览并参与讨论这个小团体内其他人发表的意见,这样你才能学习更多的技能。

如果你对游戏编程感兴趣,就要尤其用心学Python、C++以及Java。在这三者中,C++是最强大的一个,Python最简单,而Java制作的游戏则最适合在不用改动的情况下在Windows、Mac OS及Linux系统上运行。每天至少练习几个小时,正所谓熟能生巧。

学习新知识的时候,亲手实践、做出改动、预测结果这一过程是非常重要的,因为这样你才能把一个概念吃透。
多和其他程序员交流,多看其他人写的程序。这比看任何书、上任何课程都有用。

致力于计算机语言标准化。你可以关注C++标准委员会(ANSI C++ committee),也可以在自己的小团体中把2格缩进还是4格缩进统一一下。不管怎样,通过这些实践,你都能对其他人在编程方面的偏好及其原因有更深的理解。

总之

多学最常用的及行业内规范的算法。

多学着用Java解决问题。

向免费软件学习。多研究免费软件的源代码,因为如果你能利用现成的代码,又何必费尽心思去重写呢?只不过抄下来的时候要确保自己真正理解。

如果仅仅是用于在Windows上执行简单任务的程序,就可以用C#(类似Java)或Visual Basic来做;如果是其他平台,那么比较常用的就是Perl、Python、bash(或其他shell语言)。

你可以用编程来解决模拟真实情景中的问题。



0人打赏
  • UID1127
  • 登录2016-07-01
  • 粉丝0
  • 关注0
  • 发帖3
  • 主页http://weibo.com/mcxiaobing
  • 金币24枚
社区居民
qq986945193 发布于2016-03-08 17:14
沙发F
感觉没什么用。。
网站:http://blog.csdn.net/qq_21376985 微博:http://weibo.com/93sec.cc 百度贴吧:忆驹家族小冰 QQ986945193
  • UID7461
  • 登录2016-06-08
  • 粉丝1
  • 关注0
  • 发帖211
  • 主页
  • 金币191枚
社区居民
忠实会员
android_chao 发布于2016-03-09 13:36
板凳F
不错,赞一个.
您需要登录后才可以回帖
发表回复
极贡献
技术问答
专题荟萃
程序人生
视觉设计
Android开发
iOS开发
编程语言
前端开发
后端开发
服务器架构
软件测试
运维方案
创业路上



最热文章墙

  • 70506/366   【精品推荐】200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^

  • 40104/190   情人节福利,程序员表白的正确姿势:改几行代码就变成自己的表白了

  • 37795/0   Python爬虫:常用浏览器的useragent

  • 36810/259   【精品推荐】Android版产品级的音乐播放器源码,功能太强大了,最好的产品原型有木有?

  • 35801/145   省时省力的Android组件群来了,非常棒的原型参考

  • 28125/2   超全!整理常用的iOS第三方资源

  • 27431/71   原创表白APP,以程序员的姿势备战新年后的7夕,持续完善中!

  • 27035/142   2016抢红包软件及源码

  • 21789/30   麻省理工的一帮疯子,真的实现了随意操控万物!(绝对黑科技)

  • 21419/25   Android工程师面试题大全

  • 21213/27   2016程序员跳槽全攻略

  • 21131/155   Android版类似UC浏览器:非常赞,产品级的源码

  • 21044/9   GitHub上排名前50的iOS项目:总有一款你用得着

  • 20015/20   码魂:程序员的牛B漫画

  • 18234/10   2016年最全的Android面试考题+答案 精编版

  • 17997/3   吐槽那些程序员的搞笑牛逼注释

  • 17461/42   一个绚丽的loading动效分析与实现!

  • 17264/85   Android小而全的博客源码:非常适合全面掌握开发技巧

  • 17175/73   【持续更新中】Android福利贴(二):资料源码大放送

  • 16939/1   iOS 动画总结

  • 16313/45   惊艳的App引导页:背景图片切换加各个页面动画效果

  • 16044/23   个人收集的Android 各类功能源代码

  • 15791/10   女程序员的梦,众网友的神回复

  • 15664/81   仿京东商城客户端Android最新版,不错的原型和学习资料

  • 15594/5   新一代Android渠道打包工具:1000个渠道包只需要5秒

  • 15496/11   年会上现场review代码是怎么样的体验!

  • 15225/103   Android带弹幕的视频播放器源码,来自大名鼎鼎的Bilibili弹幕网站

  • 15091/53   基于瀑布流的美女图片浏览App,有注释的源代码

  • 15074/20   Android福利第三波【Android电子书】

  • 15027/17   用JavaScript 来开发iOS和Android 原生应用:React Native开源框架中文版来啦

  • 15013/23   珍藏多年的素材,灵感搜寻网站

  • 14581/78   【精品推荐】类似360安全卫士安Android源码:非常赞的产品原型

  • 14388/0   iOS中文版资源库,非常全

  • 14142/18   65条最常用正则表达式,你要的都在这里了

  • 14007/15   基于Android支付宝支付设计和开发方案

  • 13476/17   什么是真正的黑客:收获12200+Stars,人气远超微软开源VS

  • 13189/11   有木有这样一张酷图帮你集齐所有git命令超实用

  • 12849/7   一张图搞定iOS学习路线,非常全面

  • 12704/7   用程序员的姿势抢过年的火车票

  • 12680/46   在线音乐播放器完整版(商用级的源码):非常赞,可听免费高品质专辑

  • 12447/10   成为Java顶尖程序员 ,看这11本书就够了

  • 12344/0   GitHub iOS 库和框架Top100 

  • 12292/10   微信支付终于成功了(安卓,iOS),在此分享

  • 12253/18   一张图搞定Android学习路线,非常全面

  • 11971/61   【技巧一】搭配Android Studio,如何实现App远程真机debug?

  • 11932/3   基于Node.js的强大爬虫,能直接发布抓取的文章哦

  • 11795/29   【持续更新中】Android福利贴(一):资料源码

  • 11176/4   46 个非常有用的 PHP 代码片段

  • 11005/3   即时通信第三方库

  • 10707/8   流媒体视频直播方案

  • 10575/18   八个最优秀的Android Studio插件

  • 10575/9   B站建开源工作组:APP想支持炫酷弹幕的看过来

  • 10398/9   烧了5亿美金,这家神秘的公司即将颠覆人类未来!

  • 10253/2   【精品推荐】高质量PHP代码的50个实用技巧:非常值得收藏

  • 10243/10   中国黑客的隐秘江湖:攻守对立,顶尖高手月入千万美元

  • 9639/6   开箱即用!Android四款系统架构工具

  • 9451/10   十大技巧快速提升Android应用开发性能

  • 9387/3   10款GitHub上最火爆的国产开源项目——可以媲美西半球

  • 9342/3   一张图看清Linux 内核运行原理

  • 9175/1   Android性能优化视频,文档以及工具

  • 返回顶部