|
做者 | Johnny
译者 | 喷鼻槟超新星,责编 | 郭芮
头图 | CSDN 下载自视觉中国
出品 | CSDN(ID:CSDNnews)
以下为译文:
每当我正在reddit上阅读r/programming频讲的时分,总会有法式员收帖子道:“我曾经完成了Sololearn课程,通读了编程册本,完毕了CS课程。我如今以至能听懂年夜部门闭于编程的梗了。以是,我是否是曾经充足优良了?”。
凡是状况下,当我看到如许的帖子,内心便会念“没有,那借不敷。您能否用代码考虑?便像您用本人的母语一样?假如没有是,那便来重读《像法式员一样考虑》一书吧(Think Like a Programmer)。”
念要到达编程言语的流利利用需求走过一段冗长的门路,并且那条门路出有尽头,到最初您需求丢弃CS检验题,开辟出本人的产物,然后(我明白您不断正在等我道那个)找到一份事情。
怎样挣脱编程初教者的没有自大,成为一位专业人士?上面引见一下我小我私家的进修过程,分步调去。
第一步:本人选一门言语去完成一些根底项目
我很不肯意看到的一种情况是,许多教编程的同窗正在把握了一门言语的一系列笼统观点后,正在课余却完整没有明白要用它去做甚么。那也是为何我不断废寝忘食天夸大简朴项目标主要性——以下是我最喜好的几个。
用您正正在进修的言语创立一个井字棋游戏
便游戏自己而行,它固然简朴,但能极年夜天培育您对编程逻辑的掌握才能。上面便给各人引见一些根本的代码划定规矩:
创立一个九宫格游戏地区
将X分派给玩家,将O分派给电脑
增加一个弹出窗心,讯问玩家念把X放正在那里
正在玩家放好一个X以后,计较机再安排一个O
肯定得胜者
创立一个Hangman游戏(有或出有GUI皆能够)
那个使命分为两部门,一是将游戏的底层逻辑翻译为代码,两是创立一个友爱的用户界里,带给玩家高兴的游戏体验。起首,让我们先概述一下流戏的划定规矩:
创立一个字母列表,每一个包罗5-6个字母,并让每次游戏皆显现一个随机的条目
请求游戏到场者推测所选单词的字母
假如玩家料中了准确的字母,便用它去挖上响应的空缺。
假如玩家猜错了,让他明白正在小人被吊逝世之前,本人借剩几次测验考试时机
正在您的代码中完成了上述准绳后,集合精神把终极产物挨包起去。因为此次的编程重面没有是创意,而是功用性,以是利用现成的GUI包长短常适宜的。关于Java,凡是我利用的是Swing——它能供给几十种可用的接心元素。
好好做作业
假如那些例子项目过分根底,那末网上另有许多例子能够协助您锤炼本人做为一位法式员的武艺。以下是编程进修者必备的仄台:
Codegym是一个Java进修课程,可以供给几十种Java游戏,合适低级和中级程度的进修者。
(地点:https://codegym.cc/?ref=hackernoon.com)
ZetCode上有一系列超棒的Java 2D游戏(您既能够间接检察许多现有项目标代码,也能够经由过程操练题得到一些实践的游戏开辟经历)。
(地点:http://zetcode.com/?ref=hackernoon.com)
Codingame是我最喜好的操练项目之一(有超越25种言语可供挑选),由于它能教给新脚开辟者怎样拥抱义务感。根本上来讲,那个仄台能让法式员从其别人前次完毕的处所开端,为一个环球范畴的游戏做奉献。
(地点:https://www.codingame.com/?ref=hackernoon.com)
第两步:利用代码应战仄台
念要确保本人能有自信心正在理想天下中使用一门编程言语,您需求正在硬件开辟进修的最初阶段,尽量天把精神皆投进到编程理论中来。
幸亏,网上有许多有效的资本,开辟者们能够操纵那些谜题战操练去应战本人。以下是我最喜好的几个:
1.CodeGym (Java)
我是一位Java讲师,也是Java喜好者,以是一会商起新项目我便会出格镇静。如今,CodeGym是我背门生尾推的仄台。起首,上里的资本明白详细天只针对Java——因而,开辟团队对那门言语的熟悉必然十分深化。
除此以外,我发明CodeGym供给的进修直线十分的有层次——一切的操练成绩皆是根据观点停止分组的。您能够找到几十个闭于Java语法的标题问题,然后再停止汇合、范例化、OOP战其他观点的操练。
操练题统共有1200多讲——完成一切那些标题问题后,您便曾经为供职口试做好了充沛的筹办。
2. Coderbyte(JS,Java,Python,Objective-C,Swift等)
Coderbyte可以供给10种以上的编程言语以供差别经历战妙技程度的开辟职员利用。按照您当前的才能上下,能够自在挑选简朴的使命(好比寻觅字符串中最短的单词),也能够挑选初级困难(好比图基数婚配类的标题问题)。
3. Codechef(撑持35种编程言语:C,C++,Java,Python等等)
假如您念正在进修过程当中引进友爱比赛的阅历,那便必然要试一试Codechef。那个仄台会按期举行编程角逐,并供给Java,Python,C和其他盛行言语的各类标题问题。您可使用编纂器内乱置的东西去编写战查抄本人的代码(我小我私家以为,它的界里相称便利)。
4. LeetCode(C,C#,C++,Python,Ruby,Java和JS)
假如您筹办找一份法式员的事情,万万没有要错过LeetCode。那个仄台很强,可让您正在实在的情况中操练写代码,为公司口试做筹办。
LeetCode撑持七种编程言语——C,C#,C++,Python、Ruby、Java和JS。您能够别离探究仄台上的两种形式——按主题分组的标题问题形式,或“模仿口试”——正在第两种形式下,您将承受各类代码成绩的轰炸,并且借必需正在有限的工夫内乱答复。
5. Sphere Online Judge(超越45种编程言语,包罗Haskell,Ocaml,和那些小寡的言语)
SPOJ是今朝天下上最年夜的代码操练仄台之一,有超越两万讲编程标题问题。Sphere Online Judge也会按期举行乌客年夜会,闪开收者们相互僵持,配合进步。
便我小我私家而行,我对SPOJ完整是朋辈之间的交换那一面有些定见,由于那意味着您看没有到民圆给出的操练题谜底,而只能挑选信赖其他火伴开辟者。
第3步:背朋辈追求协助
即便您曾经能爽利天处理编程标题问题,而且能很好天文解言语的实际了,也需求更进一步才气成为一位顶尖法式员。
持久沉醉正在编程社区中,能够协助您理解专业人士凡是皆面对着哪些应战,当前哪些项目最受欢送,和理解一些止业内乱才气听懂的笑话等等。
如许一去,当您拿到第一份编程事情的时分,您就可以够让办公室变得像本人的第两个家那末舒适了。
从那里能够打仗到法式员?我收拾整顿了一下本人常看的论坛战交换频讲,期望能帮到您。
Reddit 频讲
普通性的编程话题:
r/programming
r/learnprogramming
r/codetogether
r/programmingtools
r/gamedev
r/prograrticles
r/webdev
r/dailyprogrammer
编程言语:
Java: r/java, r/javahelp
JavaScript: r/javascript, r/LearnJavaScript
Swift: r/swift
Objective-C:r/objectivec
PHP: r/php
Python: r/python, r/learnpython
C#: r/csharp
C: r/c_programming
Slack频讲
普通性的编程话题:
Hashtag Developers——Slack上最年夜的一个编程频讲。
European Dev Explorer——为思索移平易近来欧洲国度的开辟者们供给协助的频讲,内乱容包罗失业市场,糊口本钱,税支等。
Angular JS Chat——优良的 Angular 开辟者正在此分享案例并答复代码成绩。
DevOps Chat——那里是最极客的Slack社区之一,次要会商的是有深度的DevOps观点。
编程言语:
#ruby
#php
#python
#node.js
#go
其他仄台
以下是其他的出名论坛,不论是初教者战初级法式员凡是城市正在那些论坛上举动:
StackOverflow——那个仄台正在平辈论坛中占有着登峰造极的职位。正在那里,您能够获得实际成绩的谜底,也能够获得适用的倡议,借能够获得他人对您的代码的反应。
(地点:https://stackoverflow.com/?ref=hackernoon.com)
SitePoint——是一个正在web开辟者战设想师中心很受欢送的论坛——除能让您正在开辟圆里愈加纯熟,正在SitePoint上交换另有助于您了解其他部分的同事(UI/UX,营销部分等)。
(地点:https://www.sitepoint.com/?ref=hackernoon.com)
Hackers News——是乌客们的头号论坛,上里能公布止业内乱的最新消息,答复其别人的成绩,分享事情经历等等。
(地点:https://news.ycombinator.com/?ref=hackernoon.com)
第四步:正在网上分享您的项目
要养成风俗,把本人完成的每一个项目标代码战Readme文件皆标准化,如许他人正在浏览的时分便没有会感应很费力。假如您借出有GitHub账号,即刻来注册一个吧(我小我私家的角度去看,Github项目数目的几是辨别编程初教者战专业职员的枢纽)。
怎样确保您曾经做好把项目分享给全球的筹办了?以以下了一些简短但有效的代码格局化查抄项:
正在 Readme 文件中具体形貌项目,让他人理解那个项目标布景。
没有要粘揭现成的StackOverflow或Github的代码片断。重写是能够的,但间接利用他人的代码便不可,由于那样您便没法具体注释代码的事情道理。
为工具战变量定名的时分勤劳面。初教者经常会用“0hy1”如许奇异的,只要本人才气看懂的名字去创立变量。如许的定名方法看起去能够会更快,但是,那会让您的代码变得十分没有片面,并且从久远去看很易保护。
留意写正文,以确保此外法式员也能了解那个项目。由于到了某个时分,您会需求来公司里事情,以是写下正文去指点未来会接办此项目标偕行,是必需要做的。以是道,您最幸亏早期便养成写正文的风俗,只公然分享正文过的代码。
对您的项目停止单位测试。每一个人皆大白单位测试是开辟职员的份内之事,以是如今公司对供职者的预期曾经包罗那部门了。
正在全部项目中对峙利用统一种代码构造微风格。
结论
正如您所睹的那样,对言语的进修仅仅意味着编程之旅的开端。但好动静是,正在那条路上不管等候着您的是甚么,皆将是风趣而又刺激的,由于您终究能够构建出一些实践的处理计划,找到一份有薪火的事情,并骄傲天称本人为开辟者了。
为了弥开进修战专业火准之间的鸿沟,您需求专注于用实际常识去处理理论成绩,正在网上创立和分享您的项目,并且也没有要记了会见网上的开辟者社区——Stack overflow,Reddit战Slack频讲等。
本文:https://hackernoon.com/you-learned-a-programming-language-but-how-do-you-start-coding-80ab300w
做者简介:Johnny,初级Java开辟,Learning Tree International编程课Java讲师。
本文为 CSDN 翻译,转载请说明滥觞出处。
☞法式员之痛:六次创业五回失利了
☞研收的将来正在那里?Serverless 云开辟去了!
☞张一叫是怎样练便字节跳动的
☞机能逾越最新序列保举模子,华为诺亚圆船提出影象加强的图神经收集
☞DevOps 正在挪动使用法式开辟中饰演甚么脚色?
☞不变币经济:十年夜不变币简史
本文链接:CSDN 尽请存眷 珠海论坛网,理解珠海旅游安居糊口的更多的疑息... |
|