初学者如何自学编程

核心提示众所周知在快速发展的信息时代,程序员是极具优势的工作,不仅很少被社会琐事烦扰,还能拥有极高报酬。可是作为一个零基础的初学者该怎么成为一名合格的程序员呢?那么下面就让我分析一下初学者该怎么学习编程。编程语言要当程序员,肯定是要从学习一门编程语

众所周知,在飞速发展的信息时代,程序员是极具优势的工作。他们不仅很少被社会琐事困扰,而且报酬极高。但是零基础的初学者如何成为一名合格的程序员呢?那么我来分析一下初学者应该如何学习编程。

程序设计语言

做程序员,首先要学会一门编程语言。这是HelloGitHub给出的2022年5月编程语言排名:

你可以从这个列表中清楚地看到哪些流行语言。我整理了一下自己对各种语言的看法,但是如何选择还是要看你自己的需求:

Python:适合初学者,简单易学,与人工智能密切相关。目前主要应用于web开发、应用开发、大数据、数据挖掘、科学计算、机器学习、人工智能、运维、自然语言处理等领域。

Java:和C相比,也是比较简单的语言。不过肯定比Python难学,在三种语言中属于中等难度。目前主要用于Android和IOS的应用开发,视频游戏开发,桌面GUI,软件开发等。

c:最难,主要用在操作系统,嵌入式领域,服务器领域。适用范围广,工资高。C++是C语言的超集,既有指针又有对象,使其成为最复杂的语言。几乎所有的现代编程语言都是由C/C++发展而来,所以了解C/C++对快速掌握其他编程语言很有帮助;

Javascript: Javascript是一种文字脚本语言,有动态类型、弱类型和原型,也是在HTML页面中添加动态功能最常用的语言。Javascript作为一种脚本语言,不需要等待服务器的响应就可以立即运行,速度极佳,而且是动态类型语言,学习起来比较困难。

这些各有特点,但是如果你想入门做程序员,我建议你选择Python和Java,它们比c更容易上手。

算法和数据结构

作为初学者,当你对编程语言的学习达到一定程度后,接下来就是编程的通用技能:基本算法和数据结构。

你可能会说你以后想找的工作很简单,跟算法关系不大。有基础知识就够了;但是你要知道,这个东西就像一个基础,你后续的所有工作都要在这个基础上进行。如果以后不进入工作,你会在上面花费大量的时间、精力和金钱。

在我看来,这些是必须掌握的:

10种算法:二分搜索法、递归、排序、搜索、哈希算法、分治算法、回溯算法、贪婪算法、动态规划、字符串匹配算法。

10种数据结构:

栈、数组、链表、队列、堆、跳转表、图、Trie树、哈希表、二叉树;

不要低估他们。每一个都需要一年半的时间认真学习。想个办法彻底搞清楚这些问题。至少,以后看到这些问题不用翻书了。然后你可以进一步深入,思考这些问题:

编程框架是如何工作的?

主流编程框架和设计模式之间有哪些共同的模式?

List、Hash和key各自的应用场景和相似之处?

......

每个问题都是一座山。当你想明白并想出可行的解决方案时,你的技术会比过去提升一个层次。

实际操作

“实践出真知”,在编程的学习中尤为贴切。

网上流行一句话,“我的眼睛和大脑可以,但我的手不行。”这些问题在编程过程中也容易出现;可能你是通过看书或者看视频突然到了某个点,但是你没有去实践。近期再遇到相关问题就全忘了,很正常。

所以找实用性高的个人项目,提高阅读和编译的速度,是学习编程的最佳选择。GitHub上有几个有趣的项目可供参考:

Lllyasviel/style2paints这是一个可以根据用户定义的颜色给线条画上色的工具。这里,一些结果以ABCD格式呈现。你只需要上传你的草图,选择一种风格,然后放置光源。可以实现AI上色。当结果是在没有任何人工色彩校正的情况下立即获得的时候,我们就把这个结果看作是全自动的结果。当结果需要一些颜色校正时,人类可以很容易地在画布上放置一些颜色提示,以指导AI着色过程。Seq2seq-couplet这是一个为couplet使用Seq2seq模型的项目。MisterBooo/LeetCodeAnimation为了帮助大家更好的学习算法,经过半年的积累,创作者整理出了剑指Offer系列的40个问题,都是算法面试中的高频问题。每道题都提供了详细的分析、精美的插图和通俗易懂的动画视频,适合那些第一次刷题的同学,当然也适合反复刷题的老手再次学习巩固基础。

本文介绍到这里,希望能对初学者有所帮助,欢迎喜欢和分享!

 
友情链接
鄂ICP备19019357号-22