非計算機專業,如何學習開發、網路和資料庫知識?

我是非計算機專業的,機遇巧合開始從事了系統集成工作。因為現在的工作基本是項目管理和人際溝通,所需要的專業知識也比較少。接下去我想提高自己的專業技術,想學習開發、網路、資料庫知識。想問問大家我該怎麼入門學習呢?


1.看前輩的博客;

2.遇到具體問題再逐一突破,再圍繞著這個問題展開學習;

3.學習的過程中整理成文檔,或者以博文的形式記錄;

4.看必要的經典數據,官方文檔;;


用mooc學啊,先打好數學、演算法和程序設計的基礎以後,再學專業課就不那麼費勁了。要多動手實踐。

1,我之前發過一個帖子,是關於計算機課程的,網路相關課程多一些。鏈接:CS專業的道路上有哪些課程要學? - Shen Li 的回答

2,163也有一系列的計算機專業的課程,也挺不錯的。主要集中於軟體開發。鏈接:計算機專業課程匯總

3,Google的一個工程師Adam Fletcher曾經在自己的博客發表過一篇關於如何利用mooc學習計算機的文章。

You
Say You Want An Education?

鏈接:The Simple Logic

My aim is a computer science education that gives the
student a background in:

·
Algorithms

·
Control (robotics, other mechanical interactions)

·
Data structures

·
Debugging

·
Electrical engineering

·
Hardware

·
Programming language theory

·
Software architecture design

·
Networking

·
Systems programming

·
Mathematics, including:

o Statistics

o Probability

o Logic

o Calculus

Below is the
curriculum. I』ll discuss some of the reasons behind the choices later, but
first take some time to click through to the course descriptions and see what
you think.

Year 1, 1st Semester

Computer
Science 101

Calculus:
Single Variable

Statistics
One

Learn
To Program: The Fundamentals

Year 1, 2nd Semester

Introduction
To Logic

Data
Analysis

Learn
To Program: Crafting Quality Code

Introduction
to Systematic Program Design

Year 2, 1st Semester

Algorithms

Fundamentals
of Electrical Engineering (first half)

Writing
in the Sciences

Introduction
to Computer Networks

Year 2, 2nd Semester

Networks,
Friends, Money and Bytes

The Hardware/Software
Interface

Probabilistic Graphical Models

Introduction
to Mathematical Thinking

Year 3, 1st Semester

Fundamentals
of Electrical Engineering (second half)

Algorithms
Part 2

Control
of Mobile Robots

Automata

Year 3, 2nd Semester

Programming
Languages

Game
Theory

Human Computer Interaction

Digital Signal Processing

Year 4, 1st Semester

Computer
Architecture

Cryptography

Pattern-Oriented
Software Arch. For Concurrent and Networked Software

Image
and Video Processing

Year 4, 2nd Semester

Compilers

Machine Learning

Parallel
Computing

Natural Language Processing

The curriculum above is
purely focused on computer science and mathematics. I』ve left off the basic
science and liberal arts classes, but Coursera offers many options in this
regard and the student can pick or choose the classes that best fit the
student』s interests.

It』d be awesome if
Coursera had a course in discrete math. I think that would complement the other math courses in my
curriculum nicely. Additionally, it』d be cool if Coursera had a course on operating systems development, or
possibly another low-level programming topic like file
systems or databases. Frankly, I』m amazed at the depths
and breadth of the computer science courses available, and it』s a credit to
Coursera that they』ve built such an impressive catalog. In 2012, a student can
take the majority of a university computer science curriculum for free thanks
to Coursera. That was not possible in 2011.

希望對你有幫助:)


開發:編程語言 + 框架 + 資料庫

這方面的書不好推薦,因為我不知道你打算用哪種語言。編程語言的書請搜索知乎,框架和資料庫直接找官方文檔看就可以了。

網路:組原 + OS + 網路

http://book.douban.com/subject/5333562/

http://book.douban.com/subject/5064311/

http://book.douban.com/subject/11530329/

http://book.douban.com/subject/1391207/

http://book.douban.com/subject/24737674/

http://book.douban.com/subject/25863515/

另外這個,http://study.163.com/curricula/cs.htm,網易雲課堂上的東西也很不錯。


啊感覺題主想學的和我最近學的課程差不多…

計算機專業在讀,懂的不多,就我自己知道的和我的學習方法回答吧。有誤入歧途的話請指正,謝謝~

1.看書。選一些經典,精簡,易懂的書看。我覺得自己比較笨( ′?灬?`)書上有些部分看幾遍才懂… 如果有些地方看不懂也不要急,跳過,過陣子再回去看就會懂了…當然也可以請教別人……(? ??_??)?至於選書,上亞馬遜找到你要看的書的類別,看在排行榜前面的就可以。

或者有熟悉的靠譜的前輩推薦的也好。

2.了解基礎知識後,就做實際的東西。遇到問題就上網搜或者問前輩,因為看過書應該就不會問到一些奇怪的問題…(實際上我還是經常問學長一些,嗯,略顯白痴的問題(????ω????)問了這麼久的蠢問題沒被打一定是因為我運氣好……)


大家都在推薦成為專業程序員的書給題主,我反而覺得題主沒有必要深入學習什麼演算法啊,編程啊之類的。好好看看軟體工程相關的書比較好,比如《人月神話》、《人件》,另外再加一兩本公司用到的開發管理模型的書,比如如果用到敏捷開發,就看看敏捷開發

另外為了能和程序員有效溝通,必要的計算機知識也可以看看,比如找本計算機概論看看


推薦閱讀:

最近在學c語言單片機,感覺好難阿,我該怎麼辦?
怎麼在 Windows 7 下用 C++,不兼容啊?
零基礎自學計算機編程?
求一個簡單c語言應用程序開發的教程?

TAG:資料庫 | CCNA | 系統集成 | 編程入門 | CCNP |