你有機會去看看國外的課程, 看人家做的作業是什麼, 再比對一下台灣學校, 除了國立幾間比較有名的可能稍微能比以外, 基本是看不到車尾燈的, 學作業系統就做個作業...
那你應該要多投資不同語言之間都通用的知識與技術, 例如物件導向的 SOLID 原則, 你提到的演算法, 各種模式與架構等等, 如果你啃的下去的話, TAOCP...
如果只是"一般"程式設計師的話, 能達到工作要求就好了 但如果你想進的是 google, 趨勢, 或是其他大型軟體公司, 不靠內薦的話,...
就理論上你講的應該都沒什麼問題, 我只補充一點 現在 ping 不一定用 icmp 封包了, 因為網路可能有設定一些封包的優先權, 因此假如是跑 tcp 服務...