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

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

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu