[阶段小结]非技术人员的编程学习折腾记

2024-06-07 13:32

本文主要是介绍[阶段小结]非技术人员的编程学习折腾记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  之前很长的岁月里,一直都觉得程序员既可怜又厉害,面对如此枯燥无聊的东西,居然还干起了职业...有些人还进化成了黑客这种生物,真是匪夷所思。直到自己在公司IT同事的指引下(非常谢谢他们!),慢慢开始了解编程,越发觉得沉迷其中太合乎情理了。P.S.其实工作中遇到的很多程序员还是没那么痴迷程序的,可能成了本职工作后,心态上疲劳吧。然而当我把它作为兴趣之后,就真的上瘾了。编程于现在的我,就如同游戏于儿时的我。有时觉得需要戒一下,毕竟自己的生活还有很多方面要顾及到。

  现在是2014年的夏天,我接触程序是从2012年夏天开始的。由于工作和考试的原因每年只能有4个月里面的业余时间能弄一下编程。

  自己目前认真看下来以及做过课后题目的书只有两本。C primer plus和A practical guide to ubuntu linux(基础篇)。工作上涉及到IT知识也不多,当然我有公司数据库用户的使用权限,好歹又稍微好一些。这里你也就看到了,本人的功力是比纸还薄的,编程的道路漫长没有尽头,我知道我将倒在路上,只盼那时离我启程的地方可以远一点,因为我想看到尽可能多的风景。

  我个人学习编程的路线是先因为工作需要自学了SQL各类查询语法和技巧,觉得挺有意思。接下来工作里面数据常出错,我的工作需要和IT打交道,讨论出错的原因,了解到了数据类型等等基本的概念。然后一个好心的IT同事(真要谢谢乔瑞)跟我多聊了聊编程,告诉我其实没那么难,建议我看看C语言,我就真的去了,一篇How to think like a computer scientist C语言版的文章(才两百多页,不好意思说自己看的这叫书)。然后找了个在线编程网,动手操作了一下。好了,上瘾了。

  经过google民意调查后,我买了C primer plus,真的好书,我这里也再推一下它。数据和语法基础知识,底层电脑运作原理,Win系统/Unix系统,简单算法,数据结构之间环环相扣,涉及面广,思路清晰,由浅入深。题目不简单,尽量自己做,但是真的不会了,有答案参考。这本书是值得你放着,时不时拿出来翻阅的,千金难买回头看,别以为看完做完题,就都是你的了。看完做完题是帮助你熟悉,为了以后再捡起来方便。

  整完了这本书之后,我自学过算法,但是失败了。除了简单的sorting还搞得定,接下来的各种算法就很迷茫了,对于算法,我的智力层面还是达不够,越看越枯燥,越看越吃力。我用的算法书是Algorithms in C,但是认真学过,总是会有些收益的。后面我会讲一下我觉得舒服的C语言学习方式,仅代表个人意见。

  学习算法期间的另一条并列线是逛C语言论坛,我那水平你懂的,只有潜深水的份。有事没事run一下大家贴出的程序,自己试编一下大家贴出的题目。我也有自己的showtime,比如独立想出个把道稍有难度的题目的解法,也会贴出来展示下,还会把这些自己想出来的东西保存起来...当然只能自己看看,要是往这儿一贴,怕读者们笑掉大牙。就这样漫无目的的论坛生涯一阵以后,我和Ubuntu邂逅了。

  一开始去接触Ubuntu就是为了C,逛国外论坛的时候,看到里面的前辈建议学习C语言的同学们还是去接触下Linux。那时(包括现在)网上比较流行的免费版就是Ubuntu,有图形界面哦!这对一只菜菜鸟是很重要的,如果只是命令行,则容易让人望而怯步。我用光盘安装到了自己的老电脑里面(本人电脑08年入手用到现在...),各种倒腾Linux shell命令。然后就学会了在Linux下编C的程序,学会了使用和编译简单一些的makefile,接触到了vim, gdb。在win下面的话,一个VC 6.0就够了,没有那么多事儿。所以也有人说学C用Linux是分心的,我觉得也有道理。

  会去看A practical guide to ubuntu Linux是因为在论坛闲逛的时候,了解到Linux/GNU的透明度,以及C语言和Linux/GNU的亲密关系,自己YY出学Linux操作平台的知识一定会回馈到C语言知识。就这样开始去学了,这次没买书,是找的免费下载。学完基础部分说下感想,没有学习完C primer plus 那么爽的感觉。但是我知道是有用的。它确实是侧重practical,也让我进一步了解了这个系统。但是印象深刻度一般,主要也是因为,我对机器语言逻辑研究太浅很多东西肯定看过了也没理解到位。此书总共一千多页,英文原著其实就一本,中文切割成了基础篇和管理篇。接下来关于服务器, TCP/IP 等知识打算放一放。还是想致力于基础,通过利用C语言来了解电脑逻辑,不想学杂了,而且没必要刻意去学那么多程序语言的,除非是工作里面要用。

下面来记录一下,短短的使用期间的两起大型事故...

1. 升级系统的时候,给我亲娘直接拔了电源啊,开机后选完ubuntu后,黑屏。这里简短说下解决方法,如果你的电脑可以在开机时候选择ubuntu高级选项,来到历史各种内核选项,选一个最新的好了,进去以后是只有命令行的,命令行下用升级ubuntu内核命令,一定是升级内核的命令啊,就可以搞定。当中应该还有啥曲折,但不重要,这是大体的维修思路。

2.托practical guide福,去弄xserver的命令搞远程桌面控制...一个电脑盲去整这么高大上的东西干嘛,就如同一个几近文盲的人,硬要让自己去研究文学。P.S.整个网络里面就我一个人在用Linux,也不知道其他的机子...所以又一次杯具了。从xserver里面退出来以后,关机。再打开,进入了传说中的登录界面死循环。症状:输入用户名密码,它还让你输...网上有解决的方法,我也不贴了。等我解决这个问题(过程中中打了很多不懂的命令去终端运行)以后,我再登录到图形界面,我的任务栏,文件夹(因为桌面还在有文件夹)打开后的菜单栏,状态栏,都没啦。我好不容易用ctrl+L 去到/etc/里面搜出gnome-termial(终端),接着又是一通胡来,装了个KDE妄图解决这问题,结果以失败告终。一直到知道 unity reset这回事(unity reset可不是命令,别往终端里打哟...),才根本上解决了这个问题。这件小事也说明了一个道理,不分析问题的原因就把可以搜到的解决方式都用上是及其弱智和危险的一种做法,其实我根本不用装kde的,我只是在解决前一个问题的时候,输入了某种命令使我的nautilus(窗口管理器), panel(gnome任务栏)全部关闭了。至此闹剧结束。为了KDE,硬盘又被耗去了500+M的空间。接下来就是卸载KDE,其实我到现在都不确定有没有卸载干净,喵~。我用的卸载方式是走图形界面的,命令行网上也有,我功力有限,也怕再整出点幺蛾子。最后采用了synaptic+ubuntuTweak+删除隐藏文件.kde 的方法卸载掉了kde. 具体的就不贴了,都是可以搜到的。菜鸟们如果看到了,可以尝试用一下这个思路,先救救急。等以后咱水平上去了再用高端命令行方法吧。当你对所用命令不了解的时候,用命令行会比较有风险。

  前段时间,刚刚开动Fundamentals of Data Structures in C。这里回到前面学习C语言的话题。其实真要说来,同学,如果你也是从C primer plus 走过来的,那么学这本还是合适的。它正好承接上了C primer plus的内容。目前我也才开始看,只能说这个评价主要来源直觉。

  呵呵,都是茶余饭后的扯淡,就到这里了。我又要告别计算机知识一段时间了。



这篇关于[阶段小结]非技术人员的编程学习折腾记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1039316

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识