-
1 # 石頭每天陪伴閱讀
-
2 # IT人劉俊明
可能很多目前在讀的大學生都有這樣的問題,如果同時學習兩門程式語言會不會有問題,會有一定的問題,但不是完全不可以。
我在學習程式語言的時候基本上都是專案驅動的,不同的專案可能需要使用不同的程式語言,所以在學習過程中,大部分情況下是有時間差的,但是在使用過程中經常是上午在使用Python,下午在使用Java,晚上還有可能在使用Scala。
我曾經在一段時間內同時在學習Ruby和R兩門語言,這兩門語言的使用場景還是有較大差別的,但是同時在學習的時候也出現了一些問題。比如最大的問題就是語法上會混淆,有的時候除錯了半天才發現是語法搞錯了。但是由於Ruby和R的開發環境有較大區別,所以導致混淆的情況並不多見,但是如果同時學習Java語言和Python語言導致混淆的可能性會更大一些。
學習程式語言還是有一定技巧的,這個技巧體現在學習的方式上。在學習第一門語言的時候要詳細學習每一個概念,要透過大量的實驗來驗證概念。這個過程中要把時間更多的應用在實驗上,概念是指導方向,實戰才是最終的目的。
在學習第二門甚至第三門語言的時候,不建議按部就班的一步一步學習,完全可以直接搭建開發環境,透過樣例程式碼來進行學習。我在學習Java語言、Python語言的時候就是直接開始做實驗,透過閱讀官方程式碼來了解語法結構,然後在程式碼的基礎上修改來驗證自己的想法,最終自己編寫程式碼。
所以學習程式語言是先慢後快,先難後易的過程。
-
3 # 呆頭鴨
按照6年老碼農的真實經歷吧,多種語言一起學有時候容易串。我之前用c和c++,後來工作原因開始使用go語言,go的語法和c++很相似但是有很多奇葩的語法,比如變數名在型別前面,括號不換行,不需要使用分號等等,剛開始使用的時候真的超不習慣,後來go用順了回來寫c程式碼,語法很容易串,一堆編譯錯誤。
不過程式語言重點不在語法而在特性,每種語言都有自己的優勢,我覺得可以選擇幾種語言學習但是不宜過多過雜,其他的瞭解就可以了,關鍵是瞭解這些語言底層的實現原理,瞭解為什麼而不是去死記硬背。
-
4 # 小菜狗多多
當然可以同時學習,其實沒什麼問題。主要是有可能混,我就經常把幾種不同語言的for迴圈弄混,搞的每次還要百度一下才會用。
-
5 # 架構思維
可以。不過需要改變學習的方式,多種語言同時學習,可能效果更佳(熟悉一門程式語言更好)
一般學習方法當我們學習一門語言的時候(比如Java),我們會買一本書,而一般書上的講授流程就是從HelloWorld開始的,然後是常量、變數、判斷、迴圈、方法、類等。跟著敲程式碼練習唄。
然後你的腦子裡可能就形成了下面的結構:
Java語言:- 常量
- 變數
- 判斷
- 迴圈
- 類
如果再學習kotlin,那結構就是:Kotlin語言:- 常量
- 變數
- 判斷
- 迴圈
- 類
這樣的結構,實際上Java與Kotlin是孤立的,無法產生關聯關係。
改變結構看上面的結構可以看出,實際上對於程式語言來說,無非就這麼幾個內容:常量,變數,判斷,迴圈,類,函式等。所以我們可以反過來進行知識的組織:
常量
- Java如何表示
- Kotlin如何表示
變數
- Java如何表示
- Kotlin如何表示
這樣,兩個語言之間就產生了聯絡,也就能擦出更多的火花。以定義變數為例:
int a = 1 // javavar a:Int = 1 // KotlinKotlin的定義比Java麻煩,可以簡化嗎?嘗試去掉Int
Kotlin的型別名為什麼放在後面,而Java的型別名在前面?型別推斷
既然有var是否有其它的定義變數的關鍵字?val
var和val有什麼區別?
Java中有沒有型別推斷?方法內部的型別推斷
不斷比較,不斷加深兩個語言之間的印象。
特性差異Kotlin和Java都是面嚮物件語言,思想差不多。而如果是兩種思想不同的語言,比如函式式語言Clojure和麵向物件語言Java。那就需要從更上一層來比較學習。
之前在「函數語言程式設計(Functional Programming)相比面向物件程式設計(Object-oriented Programming)有哪些優缺點?」中提過了:函數語言程式設計和麵向物件程式設計主要是抽象方式的不同。
所以從抽象方式上來進行比較學習。
比如說函式和方法的比較:
為什麼函式不需要類包裹?而方法需要類包裹?
函式和方法到底有什麼區別?
什麼是高階函式?方法裡有類似高階函式的實現嗎?
方法的過載、多型在函數里面又如何實現?
知識樹透過不斷的比較、學習深入。你可以在你腦子裡構建一顆關於程式語言學習的樹。上層是抽象概念、程式設計思想、程式設計原則,下層是各個語言的特性、實現、優缺點。
你每學習一門語言就能豐富你的這顆樹,最終你可能並無法完全記住所有語言的語法,但是有什麼關係呢?畢竟思想才重要,語言只是工具!
回覆列表
首先這點是肯定的,肯定是可以同時學多門程式語言的,畢竟技多不壓身。但是我們說學一樣東西最好有一個計劃,而且你現在才大一,先打好基礎,比較重要!女紙不才,我也是計算機專業的,所以允許我冒昧發表一下看法。我們老師跟我們說:程式=資料結構+演算法。要把這基礎打牢,選擇一門語言C或C++研究透,其他語言是可以很快上手的。
我是15年畢業的,沒有讀研,因為這個專業對我來講還是很吃力的,特別是演算法,基本不會用,所以工作之路很坎坷……
首先我們先來大概認識一下這幾種語言的一些特點吧。
C語言:面向過程的語言,支援結構化程式設計,可以跨平臺使用。
C++是C語言的升級版,它相容C,既可以面向物件又可以面向過程。
JAVA是一種嚴格的面向物件程式語言,在JAVA中一切皆物件,有很多開發框架要學。
Python適合小工具小應用的快速開發,但是執行效率較低。
其次我們要明白,我們學那麼多語言,它到底能幹啥?
Java:企業級應用,比如開發一個資訊系統(搭配資料庫)或是安卓開發
C++:要求高效運算的軟體
C:底層驅動或是作業系統
Python:快速開發不要求高效率的軟體
最後其實我覺得最重要的一點是你自己的發展規劃,你以後是想從事哪一方面的開發,然後從大一開始,多練習專案,積累經驗,肯定能找到好工作!