2015年12月8日 星期二

[c++] 動態宣告一個未知大小的陣列

TsinghuaX : 00740043X_2015_T2 C++语言程序设计基础 (2015年秋)

第一個Lab課程,就遇到一個問題

如果說我事先不確定輸入進來的數字有多大

我該如何宣告我的陣列呢?

如果 陣列名稱[  ] ,[ ]內部是空白,VS2012編譯是沒有辦法辨認的




因此,便需要借助動態配置的幫忙

而你需要的指令就是 new & delete 來幫忙你

new 是動態的方式配置一個記憶體空間

delete則是你使用完之後new所生成的變數,將所占用的記憶體刪除

否則程式會持續暫用記憶體,造成無記憶體可用的尷尬狀況


該文 new 運算子與 delete 運算子 有很詳細的敘述

有興趣的讀者可以自行前往

[轉貼]怎样花两年时间去面试一个人

原文在此

我想這篇文章是有志於從事資訊工程的人需要好好閱讀的一篇文章

裡面推薦的書單,看來我需要找個時間慢慢啃它

2015年12月6日 星期日

[轉貼] [经验总结] 美国换专业找工作:毫无CS背景的人如何在一年半以后拿到硅谷software engineer的offer

對岸的同胞所寫的文章,覺得有點意思,就把它轉了過來

當然,對方是上海交大本科 + 史丹佛碩士

在參考的同時,也需要知道自己與對方的差距在哪


原作者 : CandyCrash   來自 : 太傻論壇

因为在palmdrive(http://palmdrive.co)上回答了tiaozi13的关于他换专业的问题,看到他当时在太傻上发的帖子(http://bbs.taisha.org/thread-16995455-1-2.html,看了一些回复之后发现可能大家对于在美国换专业找工作的认知有些误区,所以在这里结合自身的经历写点关于换专业找工作的东西,希望对大家有帮助。


首先大致介绍下自己的背景,斯坦福的机械工程设计方向的硕士,本科也是机械工程,但后来找工作面试的全是硅谷的softwareengineer的职位,当然拿到的offer也是。



  • 先讲讲自己的一点经历,如何一步步从mechanicalengineer转变成software engineer的。


本科的时候完全是纯机械,上过唯一和objectiveoriented programming相关的课程就是C++大四的时候找一个cs的教授做research,computationalgeometry方面的,纯打酱油,用CAD(这完全是ME的技能)3D模型来测试算法的效率。后来抱大腿就成了那篇paper的三作。一下子自信心暴涨呀觉得自己天生是CS的料没上过专业课也能发文章呀!然后申grad的时候申了CMU,Berkeley HCIHumanComputer Interaction, CS的一个方向)和MITMediaLab。现在回想觉得自己当时toosimple too naïve, 这不明摆着在浪费申请费么。嗯,后来去了斯坦福的机械硕士的项目(果然CS申请全给跪)。。。


所以实践证明,这样子简单粗暴的转专业方式是不可取的,或者说,risk很大,自己掂量着吧~


到了斯坦福就立志不要吃着碗里看着锅里的,专心学习机械,找的advisor就是computationalengineering方向的大牛,现任斯坦福航空航天学院的院长。结果除了开学初聊了一次天,就再也没有去找过这个大牛….因为我自作主张换了方向去学design~斯坦福大多数的学院选课很随意(下面会再详细点讲),我刚进的时候选的方向是比较传统的computationalengineering,进来后发现design更加有意思,就选了很多design的课,方向也自然换成了design


其中一门3个学期的Design课,做的项目是给日本松下公司设计所谓的‘TVfor the next generation’,最后设计设计着发现要最终要做的产品是软件而非硬件,涉及很多网站的开发。然后开始自学网站前端的开发,写点简单的htmlcss。就这样开了个码农的头。刚好那个学期学校有教Rubyon Rails的课,就跑去蹭了几节(就34节吧,听课总是想睡觉,后来就不去了)。对网站前端后端开始有了大致的了解。


到暑期要实习了,刚好这边的腾讯北美新弄了个孵化器,给斯坦福想自己做点项目的同学。就去了孵化器,一暑假做一个iOSapp。我是负责写后端,当时虽说Rails懂那么一点,可哪能写整个app的后端,连怎么开始都毫无头绪。然后就自学啊,问啊,折腾一暑假还真弄出来了。那个暑假同时还给斯坦福的一个教授做网站的前端开发。那教授弄了个VentureLab, 就是和Coursera差不多的那种在线教育网站,招几个学生帮他弄。我是唯一一个写前端的,压力那个大啊。又是边做边学。


暑假三个月基本在coding中度过,感觉那时学得非常快,因为知道的少嘛。过了暑假就基本决定从此告别ME了。所以那个暑假的过程还是起着决定性的作用。


斯坦福是quarter制的,自己在剩2下的两个quarter里面又上了MachineLearning, Data Visualization, iOS Application Development这些比较practical的课,然后面了一堆这边的大公司小公司softwareengineer的职位(下面会详细点讲这点),感觉在面试的过程中也是边面边学。


总得来说,专业上的转变,上课只是很小的一个方面,自己学自己做才是最重要的那部分。



  • 讲了自己的经历,再讲讲一些大家在这个方面可能会有的疑问。


1.觉得我这样的是个例而已
绝对不是个例。不说很多美国人都这样,我知道的这样子的中国人也不少。有一斯坦福数学的本科,后来码农了;有一EEPhD,毕业去了Youtube自然也码农了;还有….反正太多了。


2.HR凭什么会给不是CS文凭的人面试码农的职位
在你工作以后,没人care你是什么专业的文凭。那在你找工作的时候公司会在意吧。的确是有些极品的公司会在意,但是绝大多数公司都不会在意,看你resume里面的经历来进行筛选,而不是专业是什么。以我自己为例,大公司像facebook,google什么都面了,小公司就更加多了。面试的时候基本会被问道,为什么你的专业是机械,你现在却对softwareengineer感兴趣。然后正好以此为话题可以聊开。
此外,不是所有公司都是由HR来决定给不给面试,很多公司,特别是初创公司,都是由product manager来筛选。


3. 好好的干嘛要换专业去做码农?
一是自己很喜欢coding,二是美国大环境下CS找工作相对容易(不要以为学了CS就一定能有工作,能不能拿到offer还得看一轮轮面试的表现)。如果你不喜欢coding,同时也不屑为找工作能相对容易就‘折腰’,那就别换呗。这篇文章绝对不是去鼓励大家人人换专业去做码农。


4. 美国的选课真的那么自由吗?
我觉得是大多数学院是挺自由,但是不要以为所有都是这样。就以已经很自由的斯坦福来说,CS的学生选课是最不自由的。基本上必修的一排,就没什么空余给其他的课了。而且因为有些课只有某个quarter才有,你不得不在那时上,不然错过你就不要按时毕业了。像ME,只要选好24ME课的学分,剩下的21个学分基本属于随你安排。说是要给你的advisor同意通过才行,但我的那advisor每次估计看都不看就给签字通过了。


5. 码农是吃青春饭,高薪是用小时数堆出来的?
至少在硅谷绝对不是。想Oracle那种养老院就不说了,这儿大多数公司还是很  flexible的,有时想work at home也可以,只要把活干完。所以这里讲究的是get thingsdone,而不是你一天工作几个小时。放心,不会扔非常多的活给你做的。我刚开始工作不久,作息是10点半到公司,6点离开公司。从来没有加过班。绝对不会像咨询公司那样,从早上9点到晚上12点。


大概就这么多了。如果大家有一些比较specific的问题,建议大家去PalmDrive(http://palmdrive.co)问。PalmDrive是斯坦福的学生搭的平台,希望能把过来人的经验以最有效最直接的方式分享给需要的人。现在有许多像我这样的过来人在上面回答问题。


後端工程師所需要的技能

來自 全端工程师必备技能汇总

後端工程師的部分,則包含

编程语言

  • C/C++/Java/PHP/Ruby/Python/… 


网页服务器

  • Nginx Apache Lighttpd 


数据库

  • SQL MySQL/PostgreSQL/Oracle MongoDB/CouchDB 


数据缓存

  • Redis Memcached 


文件缓存/代理

  • Varnish Squid 


操作系统

  • Unix/Linux/OS X/Windows
--------------------------------------------------------------------------------
其他文章


看來需要走的路還很長

2015年12月5日 星期六

[內含書單] 37 Signals 創辦人想說什麼?

今年在 TechOrange 上面看到別人推薦行銷與創業相關的書單

( 有興趣的讀者可以自行前往 : 增強營運行銷即戰力,創業家書櫃都該擺上的 22 本書 

原文來自Medium : The 22 books to read before you quit your job )

其中一本書的書名叫作 《Rework 工作大解放

該書是由37Signals公司的兩位共同創辦人

Jason Fried 與 David Heinemeier Hansson (DHH) 所撰寫。

在接觸到該書之前,我完全不知道 37Signals 是一間什麼樣的公司 ( 37Signals 的英文 Wiki )

後來才發現,他們是由一群厲害而且自律甚高的資訊工程師所組成的公司

大家一定有聽過最近幾年十分火紅的 Ruby on Rails(RoR) 這個Web服務開發框架吧?

就是由 37Signals的創辦人David Heinemeier Hansson 所撰寫的工具

書中用簡易的語言告訴讀者,在工作的時候,真正該專注的事情是什麼

什麼該做,什麼不該做

都用淺顯易懂的語言告訴了讀者



他們十分了解"工作"這檔事

工作(Work),真正的目的應該是創造價值(Value)

(價值不只是讓成本降低,收入變高,而是大家能夠用最少的溝通與時間成本,換取最大利益)

這也是一間軟體公司盡量不要靠接案存活的原因,因為價值低,取代性高



同時他們也深諳遠距工作其實並不會讓公司的利益受到減損

反而能夠讓員工的生活更加彈性,更能夠調配個人時間

在他們出的新書《遠距工作,go!:雲端時代企業與個人的美好生活主張

就是要打破上班就是朝九晚五去辦公室上班的傳統觀念,將自己轉換到全新的工作型態


那時候我個人對於 遠端工作 以及 什麼是真正有價值的工作  的概念並不清楚

直到開始接觸了這些書籍開始

或許,錯誤傳統觀念就是需要打破,對吧 ?


--------------------------------------------------------------------------------

同時分享一些相關的文章

37 Signals的差別訂價心法:利潤最大化,而非市占率最大 (轉載自Inside)

Jason Fried :

How to Get Good at Making Money (發布在 Inc.)

想要創業的人,我想學會如何賺錢這個技能是非常必要的

這也是一間公司能夠存活的關鍵

David Heinemeier Hansson :

The day I became a millionaire   (發布在Medium )





關於C,與如何上手








选择一门编程语言,“为什么而学”这个目的是最重要的,目的不明确就没法学好。


內文如下 : 


来自: 苏子佩



-----------------------------------------------------------------------------------------------------------------------

程式寫作與一般寫作類似的地方在於,一開始寫作的作品常容易犯一些邏輯、冗贅等寫作的

錯誤。透過閱讀同儕與大師的文章(程式碼),開始能夠發現自己的不足之處,開始能夠撰寫出

文字精鍊,言簡意賅的文章出來。

[整理]XDite給年輕人的能力培養建議

XDite給年輕人的能力培養建議

實事求是,不要過著欺騙自己的人生!

以下是XDite在網誌上記錄的一些文章

我針對目前我自己認為最有幫助的幾篇,整理在下方




稍微節錄一些內容 :

最值得投資的技能

1. 中文速讀

2. 英文能力 (or 廣泛一些的外語能力)

3. 寫作能力與程式開發能力



(同場加映)歐普拉:如果你受雇從事你熱愛的工作,那麼你收到的每一分錢,都是額外的好處

稍微節錄一些內容 : 

分享(程式碼以及文章) 不斷的貼 code 以及練習在網路上發表文章,可以強化你的表達能力與邏輯組織能力。知名軟體公司 37Signals 甚至表示,他們不太注重程式底子,只雇用「寫作能力」良好的人。因為寫作能力強大代表著:組織能力與邏輯能力強

----------------------------------------------------------------------------------------------------------
讓自己變強的過程,同時也反思自己的一些時間管理盲點

畢竟學習是需要時間與精力,這些管理是相輔相成

不是時間訂下去,事情就能夠按照時間表執行。必須要考量到自己的完成時間。

所以比較好的方式反而是,先記錄自己完成80%時間所需要的時間(不必事事追求100%!)

接下來再看自己有多少時間可以掌握與運用,並在裡面穿插5分鐘左右的休息時間

找到能夠讓自己效率最高的執行計畫才是對自己最棒的計畫

切記,不必過度跟別人比較,想超車也是先從最近的一輛開始超車

而不是一開始就想要超越最前方的領頭羊
/* 載入prettify的autoloader */ /* 載入JQuery */