對程序員的技術要求
每家軟件公司對于程序員的要求因為公司性質、技術水平、產品形態等因素,對程序員的具體要求都是不一樣的,但是總體來說無非以下幾點:
根據公司技術水平,對專業技能按照初級、中級、高級等多個等級提出不同的專業性指標。一般來說是對某一種或二種編程語言有較為深入的理解。
對設計模式有一定的要求。
后端一般對對數據結構、數據庫知識有一定要求。
前端一般對界面布局、PC、手機開發要求必須的經驗。
對程序員的非技術要求
非技術要求也會有,一般為:
熟悉公司所在行業的具體業務(比如ERP、醫療、電商)(有些公司有強制,有些為加分項);
英語4級及以上(有些公司有強制,有些為加分項),一般合資企業或者外資企業為強制項。
有過大廠的實習或者工作經歷。
其他
社交能力強是加分項
這里我想對題主的問題進行一些解釋。
我在以前的回答中有提到過我自己的一個經歷:
在2018年和2019年,分別都因為新增產品線,團隊成員不夠,交付時間緊的原因,我面試和錄用了二個技術能力評估為高級程序員的員工。分別因為項目時間緊、項目本身對技術能力要求不高造成的試用期評估不準確,最后都入職了。但是在后來的工作相處中發現這2個人的問題:
技術能力都還不錯,但是溝通太差;
第一個人雖然能力不錯,但是總是犯錯,犯錯了之后還不覺得自己的程序有問題,自認為良好,而且與同事基本沒什么溝通,有空就在玩游戲,雖然自己游戲玩的好,但是找同事一起玩的時候,同事沒有一個人愿意和他玩。最后終于在一次項目問題比較大的時候被勸退了。
第二個人能力也不錯,但是總是因為和團隊對整個需求文檔的理解不一致,和團隊的項目經理自己其他成員炒的不可開交,更為嚴重的是,他自己認為需求不合理,也無視項目經理的安排,完全按照自己的理解,來實現功能,還總不聽勸。最終因為多次出現類似問題,導致他的功能延期交付,最終被勸退。
其實這二個例子很能夠說明問題,但是也是比較極端的例子了。我想說的是如果你能力非常強,但是溝通能力一般;或者說技能能力很強,但是理解力不錯,哪怕與大家溝通不多,但是正常的工作交流尚可,我覺得,任何團隊都是可以接受的。
社交能力強是程序員職業發展的重要技能
雖然說,程序員這個職業對溝通的要求并不是很高。但是,如果一位程序員想要發展的好,溝通能力強,是必不可少的。
程序員的發展途徑無非是技術路線和管理路線。
技術路線往前走,應該是要走技術管理,比如技術經理,技術總監等,如果你不想一直在技術的最底層摸爬滾打,那就一定要具備技術領導力,也就是技術和領導力并行。領導力,對溝通的要求就相對來說高了。
程序員的另一條路,就是項目經理、產品經理、軟件研發主管、研發部部門經理等項目或者產品的管理者,他們會帶領團隊完成一個個產品和項目的需求、研發、上線實施等工作。這中間,少不了一個對技術、業務、管理都非常強的人。那么這樣的人一定是能溝通、會溝通、強溝通的人。
【總結】