## Java編程那些事兒3——你適合學習程序設計嗎?
作者:陳躍峰
出自:[http://blog.csdn.net/mailbomb](http://blog.csdn.net/mailbomb)
程序設計是一個技術活,所以不是適合所有的人。現在很多人聽說程序設計人員待遇如何如何的好,都一窩蜂的來學習程序,其實這個現象很不正常,因為程序不一定適合你。其實對于一個人來說,適合你的才是最好的。
就像現在很多小孩子都被家長逼著去學鋼琴啊什么,有些小孩根本沒有藝術細胞的,所以學習的效果就是差強人意了。
其實程序設計最需要基礎扎實了,現在的程序設計學習很偏重程序設計語言的學習,或者直白點說,程序設計課程基本上可以說是在學習程序設計語言,在上一個內容中已經講解了程序設計是什么的問題,程序設計語言只是程序設計中最后的環節,也是比較簡單的環節,只學會程序語言,離實際工作的距離還很遙遠,而更多的程序基礎其實是在語言之外的東西。就像會寫漢字,熟悉漢語語法的人一定能夠成為作家嗎?
程序設計的基礎不外乎以下幾個方面:
1、?一定的英文閱讀能力
因為程序設計接觸的很多文檔都是以英文的形式提供的,一個閱讀英文很困難的人,可以學會程序設計,但是不會有很深的造詣。就像一個看不懂字典的人,能學好漢語嗎?
2、?較強的數學基礎
計算機最核心的功能就是計算,各種程序邏輯都會被轉成一定格式的運算,運算需要什么知識呢,肯定是數學了。就像一個數學很差的人能做好會計嗎?在程序設計中,需要深刻理解數學,用數學來解決你遇到的各種實際問題,類似于做數學應用題吧。這個基礎學要長期的積累。
3、?較強的邏輯思維能力
邏輯思維可能每個程序設計人員都很需要,那么邏輯思維是什么呢?其實就是把一個事情分解成一系列的步驟在有限的時間內做完,這個也是程序設計過程中最靈活的地方。例如你要完成“去羅馬”這件事情,那么邏輯有多少種呢?借用一句俗話“條條大道通羅馬”來解釋這個問題吧,所以程序設計是典型的腦力勞動。可能有些人覺得程序設計就是體力活,這也不錯,為什么呢,還是借助一個例子來說明吧,買油翁的故事大家都知道吧,如果你反復做一件相同的事情,可能這個事情對外人來說是腦力勞動,對于不斷重復做的人來說,也就只是“唯手熟爾”的體力活罷了。
可能很多初學者對于邏輯思維還不是很清楚,那么舉一個比較老套的例子吧,例如實現“把一個大象放到冰箱里”這個事情,邏輯是怎樣呢?步驟如下:
a、?打開冰箱
b、?把大象推到冰箱里
c、?關上冰箱的門
當然這只是一個很簡單的邏輯。在實際的程序設計中還需要嚴謹的邏輯思維,保證程序可以正常運行。
那么邏輯嚴謹又是什么呢?還以上面的例子為例,嚴謹的邏輯思維應該做如下事情:
a、?冰箱打不開怎么辦?
b、?大象不進冰箱怎么辦?
c、?關不上冰箱門怎么辦?
就像一個運動員來說,良好的體質是基礎,同樣,對于程序員來說,良好的基礎可能幫助你達到更高的高度。當然基礎不可能每個人都具備,但是數學基礎和邏輯思維能力是必須的。
那你的數學基礎如何呢,出個簡單的數學題目測試一下你的數學基礎吧。
已知一組從1開始的數字,第一行從左到右依次是1到10,第二行從左到右依次是11到20,按照每行10個的順序依次類推,則任意整數n(n>0)位于該組數字的第幾行第幾列呢?
所以,如何你覺得以上的內容你欠缺很多,可能你就不適合做程序設計這個職業,趁早選擇其他的職業吧,這樣對你的發展會更有利。如果你覺得以上的內容你大部分都符合,那么你可以嘗試學習一下后續的內容——《如何學好程序設計》。
希望大家積極討論,不足之處請大家積極指正。
- 前言
- (1)序言
- (2)程序設計是什么?
- (3)你適合學習程序設計嗎?
- (4)如何學好程序設計?
- (5)程序設計介紹小結
- (6)計算機軟件基本概念
- (7)進制的概念
- (8)計算機內部的數據表達
- (9)網絡編程基礎
- (10)Java語言簡介
- (11)JDK的獲得、安裝和配置
- (12)第一個HelloWorld程序
- (13)Eclipse基本使用
- (14)Eclipse基礎使用進階
- (15)如何學好Java語法
- (16)代碼框架、關鍵字和標識符
- (17)基本數據類型
- (18)變量和常量
- (19)數據類型轉換
- (20)空白、語句結束和注釋
- (21)算術運算符
- (22)比較運算符
- (23)邏輯運算符
- (24)賦值運算符
- (25)位運算符
- (26)移位運算符
- (27)其它運算符
- (28)運算符優先級
- (29)表達式
- (30)流程控制基礎
- (31)if語句語法(1)
- (32)if語句語法(2)
- (33)if語句語法(3)
- (34)switch語句語法
- (35)while語句語法
- (36)do-while語句語法
- (37)for語句語法
- (38)break和continue語句
- (39)流程控制綜合示例1
- (40)流程控制綜合示例2
- (41)流程控制綜合示例3
- (42)流程控制綜合練習
- (43)數組概述
- (44)數組基礎語法
- (45)數組使用示例1
- (46)數組使用示例2
- (47)數組使用示例3
- (48)多維數組基礎
- (49)多維數組使用示例1
- (50)多維數組使用示例2
- (51)多維數組練習
- (52)方法聲明
- (53)方法聲明示例
- (54)方法調用
- (55)方法重載和參數傳遞
- (56)方法練習
- (57)面向對象基礎
- (58)類(一)
- (59)類(二)
- (60)對象
- (61)面向對象設計方法和面向對象特性(一)
- (62)繼承(二)
- (63)多態性
- (64)訪問控制符、修飾符和其它關鍵字
- (65)static修飾符
- (66)final修飾符
- (67)this和super
- (68)抽象類和接口(一)
- (69)抽象類和接口(二)
- (70)抽象類和接口(三)
- (71)內部類簡介
- (72)包的概念
- (73)JDK文檔使用
- (74)java.lang包介紹1
- (75)String類使用
- (76)StringBuffer類和System類
- (77)包裝類
- (78)時間和日期處理
- (79)Random隨機處理
- (80)集合框架簡述
- (81)異常處理概述
- (82)異常處理語法1
- (83)異常處理語法2
- (84)IO簡介
- (85)IO類體系
- (86)文件操作之File類使用
- (87)文件操作之讀取文件
- (88)文件操作之寫文件
- (89)讀取控制臺輸入
- (90)裝飾流使用1
- (91)裝飾流使用2
- (92)IO使用注意問題
- (93)多線程基礎
- (94)多線程實現方式1
- (95)多線程實現方式2
- (96)多線程使用示例1
- (97)多線程使用示例2
- (98)多線程問題及處理1
- (99)多線程問題及處理2
- (100)多線程問題及處理3
- (101)網絡編程概述
- (102)網絡編程技術1
- (103)網絡編程技術2
- (104)網絡編程技術3
- (105)網絡編程技術4
- (106)網絡編程技術5
- (107)網絡協議概念
- (108)網絡編程示例1
- (109)網絡編程示例2
- (110)網絡編程小結