自学编程的100个技巧
作者:黑芒
背景
之前写Nas的docker都用来干啥了,有人评论说干啥不好,假装当程序员,唔,我想了想,其实像我这样假装当程序员收益还是挺大的,所以今天来跟大家分(pian)享(dian)一(jin)下(bi)。
学习过程
起源
我,地质狗。在我们这个行业,普通地质狗其实是不碰代码的,碰代码的那叫地理信息系统。我们常见的工作状态其实是这样的:
我接触编程是因为我进股市时机很好。2015年,进股市一周后大盘崩了。接下来半年的行情…惨不忍睹。在寻找新思路的过程中,我发现了量化交易,接触了python。为了股市赚钱,我自学python。到现在为止,还有一个实盘中的量化策略在跑。收益其实不高,现在用一创跑的实盘,从2019年9月算起到现在(2022年12月),三年多下来年化收益10%左右(算上打新收益)。唯一的优势就是我自己心里能自我安慰下,我还有优化的空间,以及,不用去操作(毕竟刚工作那会天天上山,根本没机会操作)。
在量化交易中,主要使用的是pandas库和平台自己的接口,偶尔用到Ta-lib。但是都在网站上,连Python环境都不用自己搭建。
接入工作
2017年我单位新项目要用arcgis。整个部门没人会用。我看了看发现arcgis里支持python的,我一下子膨胀了,心想我连里面高级玩法python都会一点,整这个还不是轻而易举,所以这活我接了。然后坑了,里面arcpy好几年没更新了,相关人员好像跳槽了,极难用。而离开了量化平台,我连个PyCharm和VSCode弄Python都得重新百度学习。不过总算慢慢摸索过来了。
后来项目中遇到了问题,每天有几百张甚至上千张采样照片要根据坐标、时间进行重命名。这肯定不能手动啊,我写了个python程序完成了,通过读取EXIF信息,与GPS掌机上存储点进行对比计算,根据时间差、距离进行重命名。也就是从这个时候开始,我开始真正接触Python的内容。
2018年,土壤环境的标准更新,市面上的软件没来得及跟上。单位前面的项目即将结束,项目成果得更新成新国标的,用python写了个用上。这时候还想将程序发给同事用,所以学了PyQt,pysimplegui等库。但是加了pandas的库太难转成exe了,同事部署python也不会,最终我变成了数据处理中心。大家把数据发给我,我跑一遍把结果发回去。
后来,项目里又遇到了种种问题,有的牵扯到了矢量数据,我又接触了geopandas库。有的需要大批量处理生成word文档,又接触了python-docx库,等等等等。随着解决问题,自己的水平也在逐渐提升。每次我都会想办法折腾点新东西。项目结束的时候我弄了个专题,机器学习的数据预测与传统距离反比差值的对比。
走出python,接触别的语言
新项目来了,我有感于上一轮项目野外记录后人工转电子记录的繁琐,想直接电子记录。又去学了flutter。用python的fastapi写后台,放在自己家的nas上,然后用flutter写了个app。导航、记录全搞定。flutter初学,基本靠抄。印象很深刻,基本抄的是github上一个日记app。
新项目出了一次野外,感觉app有点问题,回来又用GetX库把整个app重写了一次,还加入了照片和样品管理,用户系统也加上了。抄的内容基本改完了。
然后项目开始吹牛逼,说要搞数字化。我又去学了Vue,打算写一个网页管理端。目前还没写完……项目这边不重视,写了又是只有我自己一个人用,我也就懒了。估计最后可能直接鸽掉。
自学编程我收获了什么?
那么通过这一系列的自学,我收获了什么呢?
首先是升职加薪。2017年接了arcgis的相关工作后,部门新项目因为都是用arcgis的,当时就我会,我一个人承担了3个项目的相关工作,第二年就让我当了其中一个项目的项目负责。对我个人来说,带来了工资收入上的大提升。
其次是额外收入。在2018年开始,由于我将工作内的很多问题都通过编程来解决了,那么也就顺势接了点私活。几年下来陆陆续续也赚了不少零花钱。
最后是节省时间。同样是由于工作中很多问题通过编程解决,最终完成同样的工作,所需要的时间,我比同事更短,我可以将节省下来的时间的一部分拿出来自己分配,比如看书。
从我个人学习经历的一点建议
说实话,我的编程学习经历,并不具有太强的参考意义。基本就是兴趣+赶鸭子上架。但是作为一个真的吃到了甜头的人,我还是腆着脸给大家几个建议吧:
1.编程并不是程序员专属,实际上我自己感觉,很多工作里,一些小程序都可以极大的提升自己的工作效率,带来提升。甚至由于你自己才是这些工作的实际操作者,你更知道整个过程中,哪些事情是最需要程序的,哪些地方可以变通一下,你对需求才是最了解的。
2.不要把编程想的太难,Python这种,抄抄写写,错错错错错错错错错对错错错错错错对,磨一阵子,其实都能有点收获;
3.要多实践,看视频上课学的东西,也许比较系统,但是永远没有你自己找一个实际问题,自己写了来的效果好;
4.编程的书也可以适量看一点,特别是对于自学编程的人来说,一方面是可以扩宽思路,比如《让工作化繁为简:用Python实现办公自动化》,能让你了解一下,程序能干什么,你可以对照着想想,自己的工作中哪些任务是可以通过程序来解决的。一方面是可以完善一些细节,比如说《Effective Python:编写高质量Python代码的90个有效方法》让我知道了一些自学不太接触的到的小技巧,让我写出来的代码,至少在我看来,更好看一点。
以上就是我自学编程的过程和收获啦,希望也能帮助到你。
","force_purephv":"0","gnid":"937549337181a30da","img_data":[{"flag":2,"img":[{"desc":"","height":"402","title":"","url":"https://p0.ssl.img.360kuai.com/t0189c49cf392f600a7.jpg","width":"600"},{"desc":"","height":"1215","title":"","url":"https://p0.ssl.img.360kuai.com/t01406276c5c5010074.jpg","width":"586"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1670590229000,"pure":"","rawurl":"http://zm.news.so.com/4b6509a16e4a381f6c02c2e78ed6edec","redirect":0,"rptid":"6078c3a5ef9a98c3","s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:app","k":"app","u":""}],"title":"放心吧,我不卖课——我的编程自学之路
咸封灵1823如何零基础学习编程 -
桂盼壮15761693658 ______ 1、C语言较c++简单,可以先学C语言,想自学的话,建议买些书回去,顺带网上找找视频,平时做些习题,最好能上机调试,以此积累算法.然后你可以学习面向对象语言(例如c++,c#,java等),也可以不学c语言直接学c++等面向对象语言....
咸封灵1823怎样学好编程
桂盼壮15761693658 ______ 要有喜欢钻研的热心,要学会尝试,多练习,多试验,找窍门和技巧~
咸封灵1823怎.样学习编程 -
桂盼壮15761693658 ______ 推荐你学三种编程语言,因为推荐你学是有原因的.第一:先学习好C语言,这个是学所有编程语言的基础.也是将来去考国家证书的必须要考的一门.第二:学好java,因为java在目前来说,占领地位是排第一位的.而且工资待遇也不错.市场需求占有率高达50%以上.或者学习.NET,因为.NET出来还不算太久,但是就因为是微软出的东西,所以市场占有率也已经达到了48%了,况且.NET比java要容易上手.两者之一,你可以选择一个.学java就往jsp工程师方向发展,学.NET就往ASP.NET方向发展吧.第三:顺便学一门数据库的技术.因为开发的时候,难免会要和数据库打交道.懂总比不懂要好.一般就学SQL就行了.ORACLE一般只适应于大型公司
咸封灵1823如何学好编程? -
桂盼壮15761693658 ______ 学习编程是一件好事 不过之前你得先了解 你学习编程的目的是什么 这个很重要 因为目的决定发展方向 目前对于编程有很多种编程语言以及相对应的开发软件 下面说明一些常用的编程语言 根据你的情况选一种语言进行学习 不要盲乱学习 C语言...
咸封灵1823如何能够学好编程
桂盼壮15761693658 ______ (转) 学习物件导向的思维 学会了语言,并不代表就可以设计出好的物件导向系统架构.想要成为物件导向的专家,往往需要: * 多看相关的书,特别是 Design Pattern 和 Refactoring 的书. * 多观摩别人的程式(例如 Java API 的 design 与 ...
咸封灵1823谁可以提供一个新手学习编程的方法啊? -
桂盼壮15761693658 ______ 最近很多人都在问如何学习编程.我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的.即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借...
咸封灵1823怎样自学编程 -
桂盼壮15761693658 ______ C语言是很好的,如果你学并决定要学好,恭喜你.你的选择是对的. C的优点就不用多说了,一大堆. 我想给你推荐两个工具: 1,有学有练轻松简单学C语言---苦丁香C语言速成 有关页面 http://www.verycd.com/topics/20209/ 学习篇 讲解C语...
咸封灵1823如何深入和高效的学习编程语言 -
桂盼壮15761693658 ______ 一、有明确的学习目标: 明确的学习目标对我们的学习有着举足轻重的作用. 编程并不是纯粹的知识层面上的学习,知识更多的是做为培养素质的载体,当我们通过学习知识的过程培养了良好的计算机素质以后应该能够很轻松的进行计算机知...
咸封灵1823怎样才能自学好编程?
桂盼壮15761693658 ______ 要看一些相关的书,多听一些讲座网上有很多视频教程,要多读别人写的程序.在以上的基础上自己可以试着多写代码,在加上自己的思维和创意. 编程语言有: 工控程序:c ,c++,vc 管理系统:vb,delphi,pb 做网页B/S: html,jsp,php,asp,asp.net,java,C#
咸封灵1823怎么样才能把编程学好 -
桂盼壮15761693658 ______ 建议一:自学也需要看书 自学只是说没有专门的老师手把手教你,并不是说连书本都可以不要了.有人天天来问我一些很基础的概念问题,我问他:“这些概念书上不都写得很明白吗?”他回答:“我没有书.”如果没有书,那么你很难在脑子...