译者 | 喷鼻香槟超新星,责编 | 郭芮

头图 | CSDN 下载自视觉中国

出品 | CSDN(ID:CSDNnews)

对峙2php兑换码若何解脱初学者的不自负成为一名专业编程人士 Webpack

以下为译文:

每当我在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 在移动运用程序开拓中扮演什么角色?

☞稳定币经济:十大稳定币简史