没想到CSDN的码龄9年了,但真正较密集的学习编程知识还是近两年的事。不得不感慨,15、16年的时候AlphaGo横空出世,人工智能(AI)开始进入人们的视野,到现在AI已经融入科研的方方面面。
从一开始编程的一堆报错,迷茫彷徨,甚至想放弃使用编程语言(主要使用Python)的研究方法。后来自己通过搜索引擎去寻找解决方案,CSDN和博客园上的有用答案总是排在前面(吐槽一句,百度知道的回答质量是真的差,有用的答案没几个),试着自己去调试代码,实现自己想要的功能。提升编程学习能力的过程中踩过很多坑,谢谢自己的心得,也欢迎小伙伴们互相交流和留言。
1.理论重要,但干中学才能让理论知识落地。
总结一句话,多动手。元组、列表、array、list、dataframe,这些概念都很抽象,还有互相之间的转化,光看书本肯定是一头雾水,跟着网课或者书本进行实操才能更快地掌握实际应用。如果是生物信息或者经管类专业同仁只是想应用人工智能和python语言实现一些行业的落地应用,复杂的算法公式也可以不必从头推导,理解核心公式即可。
2.一步一个台阶,逐步提高编程能力
看B站等平台的学习视频标题总写3天学会深度学习,一周学会自然语言处理,有的时候我真的陷入自我怀疑中,安装个pytorch解决各种包的依赖兼容问题都花了好几天,但这就得沉下心来,不把学习的系统环境搭建好,何谈应用甚至改进深度学习的算法?上来就一串几百行的代码,几十个报错,这样确实打击人,可能就真是入门到放弃了。一步一个脚印,从最简单的功能开始学起,向人工智能技术,就得先从最简单的调用在线模型的API接口开始,部署本地大模型也先从最基本的提示工程开始学,然后是微调,RAG这些相对复杂的操作。
3.多参与社区论坛,多交流,建立自信心
一堆报错解决不了确实是打击人,但是在CSDN、博客园等平台上,可以找到很多“天涯沦落人”,原来这不仅仅是我一个人的问题,还有很多和我一样的人在被各种bug折磨。这个过程中互相解答,交换知识,既能解决眼前的难题,也能扩展视野,树立自信心。在此也要感谢CSDN提供这个宝贵平台。另外,英语对于科研工作者和开发工作者来说真是太重要了,各种报错都是英文,而不理解其含义只是鹦鹉学舌一样去效仿网上的解决办法不是根本出路,必须了解各种报错背后的底层原因。
4.敢于尝试新鲜事物,提高自学能力
做科研,搞开发就不能被路径依赖束缚,要敢于尝试新鲜事物,比如最近的生成式AI真是太火了,我是去年用上百度文心一言等工具的,后来通义千问、智谱清言跟着也用上了。在现在学习生成式AI的时候遇到各种问题,也学会了去请教生成式AI,用魔法打败魔法,哈哈。如论文写作中,很多人习惯了word这种所见即所得的软件,而对Latex这种编码语言实现的排版软件比较排斥,但往往好东西都是有学习成本和学习门槛的,别人会,自己努努力也能掌握。
5.好的工作流程和工作习惯,如记错本
一直在踩坑,总是debug到深夜,但是项目进度依然缓慢(包括最近学大模型和生成式AI)。部署环境中遇到的报错,这次按照A模型的时候碰到了,去网上查了一圈下来费九牛二虎之力解决了。下次安装B模型的时候又碰到了,又去网上找答案。有这种情况的在评论区里举个手。这真的是对时间和精力的极大浪费,现在我的方法是使用笔记软件(现在用的是有道笔记)来记录遇到的问题,并对其进行分门别类(如python语法错误归一类,包的兼容问题归一类,每类笔记单独存放)。有道笔记操作方便,全平台同步,但是感激不如word好编辑,如多级标题字体字号的设置等,很多功能我还在摸索中。
最后再加一条吧,多输出,把想法落成代码和文章,坚持下去,会有质的突破。