我给新手程序员的实用建议
创始人
2024-03-02 12:04:59
0

做一个高效的、充满好奇心的问题解决者吧!这会帮助你成为一名成功的程序员。

你是否曾经遇到过这样一种情况:你想解决一个问题,并且你在 YouTube 或 Google 中找到了相关的教程。嗯,你觉得看会了,可真做起来,却止步不前,大脑一片空白。你感觉自己每一行代码都看懂了,可一旦离开了那个教程,就步履维艰。如果你在 HackerRank 或 LeetCode 上看过别人的解题过程,你就能体会到,一个有追求的程序员第一次看到这些挑战时,他会是何种感受。举例来说,假设你正在学习一门新语言,在你刚开始理解这门语言的基础知识的时候,你看了一个教程,摩拳擦掌,结果发现自己无法独立应用学到的知识,这反过来可能会导致你怀疑自己的知识和能力。

把教程付诸于实践

你应该从头开始吗?如果你这么做,你可能很快就会发现自己重复学习了很多次相同的知识点。虽然从头开始并不一定是种浪费,但是,你该如何变得更高效呢?

死记硬背在编程中完全是行不通的。话虽如此,但你也不能够忽视熟悉语法的重要性。因为,死记硬背和养成习惯之间是有明显区别的。习惯是很难打破的。要养成多使用编程语言的常规语法、函数、方法、模式、范式和构造的习惯,这样你才能掌握它。掌握一门编程语言需要大量的创造力和练习。练习语法是非常必要的,直到它们能在你的脑海中自然地浮现,就像血液在血管里流动一样。

“问题解决”的工作原理

那么,你该采取什么样的方案呢?这实际上取决于许多因素。这些因素可以是任何东西,下至技术限制,上至用户需要。世界上有无数的问题,每个问题都有许多解决方式。如何选择一个最好的?这就需要 “问题解决” problem-solving 的技巧了。

下面是一个简单的例子。你需要把两个数相加,让它们等于 6。显然,你有多种方式可供选择:

3 + 3 = 64 + 2 = 65 + 1 = 6

同理,如果你需要让两个数字,经过一次减法、乘法或除法运算后,得到的结果为 6。你仍然有很多选项,包括:

8 - 2 = 612 / 2 = 63 * 2 = 6

每种方案都有它固有的限制,且各不相同。当你在现实生活中尝试做出一个高效的方案时,你必须要考虑到所有的限制。这个方案可行吗?有什么障碍吗?有可操作性吗?是否可扩展呢?而如何最小化约束,并做出一个最优方案,就取决于问题类型和业务需要。

练习很重要

编程的目标不仅仅是解决问题。因此,从工程视角理解代码如何工作始终是一个优势。这就是代码审查在企业级开发中发挥作用的地方。编程的最低要求是具备基本的编码知识,包括语言的语法、函数和方法。归根结底,“写代码”是需要你去的,所以练习总是有助于提高你的技能。流畅的写作和复杂方案的开发都来自于持续的学习和训练。

学习编码

我撰写和分享这篇文章,是为了鼓励新程序员去探寻自己的内心,寻找那个“优秀的问题解决者”。请不要停止相信自己。

要成功编码,你需要培养许多习惯。下面是我在学习编码时保持高效的方法:

  1. 一个包含语法、方法和函数 速查手册 总能应付不时之需。
  2. 将问题分解成更小的部分,便于追踪。
  3. 尝试理解代码运行的核心概念。
  4. 构思解决方案时,大可发挥你的创造力 —— 但刚开始还是要注重基础。
  5. 在练习时,创建尽可能多的应用和组件。
  6. 永远不要从 Stack Overflow/Exchange 等开放平台上复制/粘贴代码,特别是在不了解上下文的情况下。
  7. 跟着教程做了一遍后,尝试从头开始构建所有内容。即使你只能独立完成一半,那也仍然是一个成就。

祝我们所有人好运!


via: https://opensource.com/article/22/8/coding-advice-new-programmers

作者:Sachin Samal 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

要是早看到这篇文章,你起码...
文章目录前言一、程序员的薪资是怎么样的?二、我现在的...
2025-05-30 01:46:37
新手小白第一次使用Visu...
新手小白第一次使用VS的简单配置教程一、安装小番茄!...
2025-05-29 23:53:59
糟糕程序员的7个通病,你中...
我们可能经常听到这句话,人永远赚不到认知以外的钱&#...
2025-05-29 15:34:47
震惊,竟然能通过表达式计算...
我有一个问题: 假设我们从给前端返回一个VO...
2025-05-29 03:02:43
嵌入式Linux入门必看!...
最近总有人问我:想学嵌入式Linux,到底该买哪块开发板?这问题就...
2025-05-10 12:17:26
百万学区房 vs 0元AI...
百万学区房 vs 0元AI竞赛,哪个更助力升学? 程序员家庭专享:...
2025-05-06 14:17:58

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...