Java之父高斯林是一位加拿大的計算機天才。
他創造了偉大的編程語言——Java,在TIOBE排行榜上,Java常年排名第一。
現在這位64歲高齡的祖師爺依然戰鬥在編程最前線,寶刀不老。
Java之父找不到工作?
就算是Java之父,也難逃中老年危機。
高斯林曾在Facebook上發表了一段言論:
我曾在面試的時候被HR告知,“通常我們不招你這種年齡的程序員,但你的情況特殊(指的是他Java之父的身份),所以對你特殊考慮。”
有些程序員開始表示同情高斯林的遭遇,中老年危機找不到工作。
但是,人家找工作可是不一般呀!
有人找不到工作是找不到一個年薪十幾萬的工作。但這位祖師爺這裏人家找不到的是年薪五百萬的工作!
這和有些女神經常感歎,找不到男朋友有點類似。
有個程序員表示,祖師爺也可以找個大學去教書,將自己的畢生所學傳給下一代。
還有一個程序員網友表示,我如果哪天有幸收編程的徒弟,就找高斯林的畫像挂牆上,他們要拜祖師爺。
計算機編程藝術
在編程的過程中,難免要在程序多加入一些代碼,這勢必將讓程序複雜性增加。
但是你沒有多寫入一些代碼,用戶體驗程序就會很複雜。
高斯林曾談論過計算機編程藝術,他認爲和精力守恒定理一樣:你投入到程序中的精力越多,用戶使用時遇到的麻煩和折騰的精力就會越少,程序員要做的,正是在開發端和用戶端之間盡量平衡開發和用戶的複雜度。
祖師爺這一段代碼你看懂了嗎?
近日,有程序員網友曝光了Java之父寫的一段代碼,祖師爺這段代碼你看懂了嗎,有沒有很牛逼呢?
[Listing One]
PingPong class PingPong extends Thread {
String word; // what word to print
int delay; // how long to pause
PingPong(String whatToSay, int delayTime) {
word = whatToSay;
delay = delayTime;
}
public void run() {
try {
for (;;) {
System.out.print(word + " ");
sleep(delay); // wait until next time
}
} catch (InterruptedException e) {
return; // end this thread
}
}
public static void main(String[] args) {
new PingPong("ping", 33).start(); // 1/30 second
new PingPong("PONG", 100).start(); // 1/10 second
}
}
[Listing Two]
Account class Account {
private double balance;
public Account(double initialDeposit) {
balance = initialDeposit;
}
public synchronized double getBalance() {
return balance;
}
public synchronized void deposit(double amount) {
balance += amount;
}
}
[Listing Three]
synchronized_abs /* make all elements in the array nonnegative /
public static void abs(int[] values) {
synchronized (values) {
for (int i = 0; i < values.length; i++) {
if (values[i] < 0)
values[i] = -values[i];
}
}
}
[Listing Four]
class Queue {
// The first and last elements in the queue
Element head, tail;
public synchronized void append(Element p) {
if (tail == null)
head = p;
else
tail.next = p;
p.next = null;
tail = p;
notify(); // Let waiters know something arrived
}
public synchronized Element get() {
try {
while(head == null)
wait(); // Wait for an element
} catch (InterruptedException e) {
return null;
}
Element p = head; // Remember first element
head = head.next; // Remove it from the queue
if (head == null) // Check for an empty queue
tail = null;
return p;
}
}
[Listing Five]
Thread spinner; // the thread doing the processing
public void userHitCancel() {
spinner.suspend(); // whoa!
if (askYesNo("Really Cancel?"))
spinner.stop(); // stop it
else
spinner.resume(); // giddyap!
}
[Listing Six]
class CalcThread extends Thread {
private double Result;
public void run() {
Result = calculate();
}
public double result() {
return Result;
}
public double calculate() {
// …
}
}
class Join {
public static void main(String[] args) {
CalcThread calc = new CalcThread();
calc.start();
doSomethingElse();
try {
calc.join();
System.out.println("result is "
+ calc.result());
} catch (InterruptedException e) {
System.out.println("No answer: interrupted");
}
}
}
最後小編給大家准備了一整套大神的視頻教程,全部免費分享給大家
《Java300 集》 由高淇、裴新、李毅老師曆經兩年錄制而成。整個教學視頻從零基礎開始講解,不僅僅注重實用性、同時注重底層原理講解(內存分析、數據結構、JDK 源代碼解讀),讓大家不僅快速用于實戰而且內功紮實。
本書涵蓋了《Java300 集》的核心內容。整套視頻由多個項目穿插講解,從零基礎編程寫遊戲、手寫 WEB 服務器、手寫 ORM框架,內容覆蓋工作和學習的方方面面。並且已經被北京大學教授推薦爲學習 JAVA 必看視頻:
第一階段 :Java基礎
1.認知基礎課程
2. java入門階段
3. 面向對象編程
4. 飛機小項目
5. 面向對象和數組
6. 常用類
7. 異常機制
8. 容器和數據結構
9. IO流技術
10. 多線程
11. 網絡編程
12. 手寫服務器
13. 注解和反射
14. GOF23種設計模式
15. 正則表達式
16. JDBC數據庫操作
17. 手寫SORM框架
18. JAVA10新特性
19.數據結構和算法
20. JVM虛擬機講解
21. XML技術解析
第二階段:數據庫開發全套課程
1.Oracle和SQL語言
2.Mysql快速使用
3.PowerDesigner使用
4.JDBC數據庫
5.Mysql優化
6.oracle深度講解
第三階段:網頁開發和設計
1.HTML基礎
2.CSS基礎
3.JavaScript編程
4.jQuery
5.easyUI
第四階段:Servlet和JSP實戰深入課程
1.Servlet入門和Tomcat
2.request和response對象
3.轉發和重定向_Cookie
4.session_Context對象
5.JSP
6.用戶管理系統
7.Ajax技術
8.EL和JSTL標簽庫
9.過濾器
10.監聽器
第五階段:高級框架階段
1.Mybatis
2.Spring
3.Spring MVC
4.SSM框架整合
5.RBAC權限控制項目
6.Hibernate3
7.Hibernate4
8.jFinal
9.Shiro安全框架
10.Solr搜索框架
11.Struts2
12.Nginx服務器
13.Redis緩存技術
14.JVM虛擬機優化
15.Zookeeper
第六階段:微服務架構階段
1.Spring Boot
2.Spring Data
3.Spring Cloud
第七階段:互聯網架構階段
1.Linux系統
2.Maven技術
3.Git
4.SVN
5.高並發編程
6.系統和虛擬機調優
7.JAVA編程規範
8.高級網絡編程
9.Netty框架
10.ActiveMQ消息中間件
11.單點登錄SSO
12.數據庫和SQL優化
13.數據庫集群和高並發
14.Dubbo
15.Redis
16.VSFTPD+NGINX
第八階段:分布式億級高並發電商項目
1.基于SOA架構介紹
2.VSFTPD和Nginx和商品新增
3.商品規格參數管理
4.Jsonp
5.CMS模塊
6.廣告位數據緩存
7.SolrJ和SolrCloud
8.商品搜索
9.商品詳情
10.單點登錄
11.購物車
12.訂單系統
13.分庫和分表
14.分布式部署
第九階段:畢設項目第一季
1. 電子政務網
2. 企業合同管理系統
3. 健康管理系統
4. 商品供應管理系統
5. 土地檔案管理系統
6. 聊天室設計和實現
7. 碼頭配套和貨櫃管理系統
8. 百貨中心供應鏈系統
9. 病曆管理系統
10. 超市積分管理系統
11. 動漫論壇
12. 俄羅斯方塊
13. 個人博客系統
14. 固定資産管理系統
15. 影視創作論壇
16. 屏幕截圖工具
17. 超級瑪麗遊戲
18. 飛機大戰遊戲
19. 雷電
第十階段:畢設項目第二季
1. 微博系統
2. 寫字板
3. 坦克大戰
4. 推箱子
5. 電腦彩票系統
6. 記賬管理系統
7. 新聞發布系統
8. 醫院挂號系統
9. 倉庫管理系統
10. 停車場管理系統
11. 網絡爬蟲
12. 酒店管理系統
13. 企業財務管理系統
14. 車輛管理系統
15. 員工信息管理系統
16. 旅遊網站
17. 搜索引擎
18. 進銷存管理系統
19. 在線考試系統
20. 物流信息網
21. 住院管理系統
22. 銀行櫃員業務績效系統