前言 本篇文章会讲述本人近一年的学习编程的总结,介绍一些方向性的内容和避免一些坑(和考研、就业相关),也对于python和java做了一些概述,希望能够让大家大概了解这两门语言的特性,以合理选择学习哪门语言,也给出一些优质书籍和资源供读者参考,并借此与那些想要学习编程和刚刚步入编程学习的小伙伴相互交流,也希望大家也能不吝赐教。
一、新手应该怎样选择编程语言?1、python(就业面比较窄而且职位少、入门编程也不推荐,辅助办公、做论文研究推荐,考研不推荐) python基础
我还记得自己刚开始学习编程的时候,是在大一(本人本科专业是文科类,以至于对于将来的就业没什么安全感,三十学艺嘛。),那时候抱着一本《Python编程:从入门到实践》开始自学python,室友也有一个在学python,但是我俩不搭边,他跟着B站上的资源学习,而我选择看书不看视频。可能是自己比较笨
花了一个多月看完了《Python编程:从入门到实践》就只能写几个比较简单地if,else之类的,感觉还是没能够入门python这门语言,一些概念性的东西也没能理解,比如return是什么?返回值是什么意思?这也是python比较坑爹的地方,虽然自由简单是python的一大优点,但是自由简单在你接触了java等面向对象语言之后,你会发现自由简单成为你学习其他语言的一大阻碍,也是你继续在python这条路上前进的障碍——“自由简单 = 不规范”。比如程序入口这个概念:
if __name__ == '__main__':
相信一些学习python的小伙伴都有看过。在其他的语言比如java,这个语句就是
class Test{ public static voID main(String[] args){ //这里是用来运行的代码 }}
在java或者c这些语言上,你要执行的代码一定是在这个main程序入口之内,否则的话,并不会执行。只学了python的伙伴就可能会用如下1和2的错误写法
class Test{ public voID do_something(){ System.out.println("Hello World!"); // 这个语句相当于pyhton的print() } //仅仅运行以上代码是不会有输出的 //do_something();1、不能这样 public static voID main(String[] args){ do_something();//只能这样 }}//do_something()2、也不能这样
python小白不知道这个程序入口是干嘛用的,而懂了这个语句的功能的人也不会去写它,因为pyhton并不强制要求你一定要在这个语句内才能运行,可有可无,没影响,甚至连类的概念也是那样随意,方法不一定在类内,结果我在学习java之前都不太明白为什么要写类,明明不写也可以运行,到需要复用代码的时候也就写一个方法调用,至于类和继承是不会去特意用的。
关于如何学习python,我的看法是看书自学,一些培训机构疯狂宣传python有多强,其实并没有多强,我甚至不推荐python入门编程,因为你根本入不了门,在去学习java或者C的时候,只会python的你会发现好像都需要重新学一遍一样,当然每个语言都有自己的难点,比如java面向对象,c指针,但是从相似程度来说,python和其他语言差异较大,而且并不适合用来就业和考研(除了一两个院校面试用python,其他的院校大多是都是用C或者C++,java也是不用的!!所以不要觉得学习了python就能考计算机的研究生了,不要觉得会调python的sklean库就觉得自己能考人工智能的研究生了,这也是我之前走过的坑,人工智能只和数学有关系,和python半毛钱关系都没有。)
python入门我是用了两本书,推荐后一本《Python基础教程》
第一本《Python编程:从入门到实践》
第二本《Python基础教程》
我真正入门是看了这一本书,阅读到前十章也就够了,网络方面python基本用不到。当然理论入门还结合了一些网络爬虫的书籍。
除了看书以外,编写代码也是很重要的,推荐一个练习题库:
python利器,一个手机app,里面有python一百例,一题一题练习,是在不会的就跳过,虽然里面的题目都是python2语法的但是不妨碍练习python3,我当时练习完100题之后,发现打代码的速度都快多了,对于后面其他方向的学习也是很有必要的。
python发展方向
接下来介绍一下学习python的一些方向(也推荐一些本人看过的也觉得比较好的书籍):
1. 网络爬虫(千万别去死扣这个方向,学到能爬爬网页也就够了,不学也行,不是正道,学了就当个小工具。顺便说一句:爬虫对于论文研究收集数据也是有很大作用的。结合python数据分析有奇效)
《精通Python网络爬虫》![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210528212448519.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhb2d1YWliYTU3OTU2Nw==,size_16,color_FFFFFF,t_70#pic_center =200x)《Python网络爬虫从入门到实践》
《实战python网络爬虫》
2. 数据分析
(这个方向推荐学一学,理由:有助于提升python的运用,也算是一门比较实用的技术,对于做论文研究、职场办公、数据分析师职业都有好处)推荐使用的IDe是anaconde的jupyternotebook:
推荐书目:
《利用Python进行数据分析》
《Python数据分析与应用》
《对比Excel,轻松学习Python数据分析》
这本书写的也很清晰,对于学习python数据分析也有很大的好处。
3. 机器学习
(这个绝对是天坑,如果是抱着玩玩的心态可以去学,如果是想着学完这个去应娉什么机器学习算法工程师,那真就是梦做过了头。能够拿到offer的两大类人:一类,机器学习专业名校毕业硕士博士,一类,打比赛打出名了的,第一名第二名四五次这样子的)
还是给玩玩的人推荐一些教程和资料:
网刘宇波老师的《python3入门机器学习 经典算法与应用 轻松入行人工智能》(虽然轻松入行很夸大,但是这个教程是有真材实料的,学完调库是没问题了,能够参加一些平台的机器学习算法比赛,比如kaggle、DC竞赛都会举办一些机器学习比赛)
然后提一句:人工智能和python没有半毛钱关系,学会了调python的一些库也绝不是你考上名校人工智能专业硕士的资本,甚至可能不会带来任何优势。
《特征工程入门与事件实践》
学习人工智能和特征工程有很大关系,甚至可以说对半开或者更多,算法很重要特征工程(也就是数据分析)也很重要,这本书是我觉得说的比较好的一本书了,很清晰。 4. Flask
(这个是一点点都不推荐,有javaweb…,但是学了也是有帮助的,对于前端后端概念模糊的人,就能够理解前端后端是什么了,前端=界面,后端=代码。在例如androID或者javaweb中前端界面的代码和后面的代码是不同的,web前端用的是HTML5、CSS之类的,androID前端用的是xml,后端用的就都是java了,androID也可以用kotlin但我还没学。。。)推荐的IDe是pycharm(十分方便,jupyter没有控制台,得自己开一个cmd,而且进入浏览器还得自己复制网址,不方便):
但是还是给一本好书,给有兴趣的同学一份资料:
《Flask Web开发实战入门、进阶与原理分析》
这里总结一下python:
1、有学习价值,如数据分析,爬虫。
2、不适合就业、考研。
学习java是我从大一下开始的,学了很长时间,但是还是依旧菜(抹把眼泪)
推荐书目:
李刚的《疯狂java讲义》第五版:
提一句李刚老师的书真的好,不说内容很全面,就是书本错别字都是其他书比不了的少。
还有一本书作为补充,不过能学习完上一本的同学,我觉得已经够了,不过还是补充一本:
《java王者归来》
《head First Java》不推荐,理由:我感觉读完不能入门,而且厚厚的,还花了我不少时间。。。。不推荐。
java的量十分巨大,所以在读的过程也要注重上手练习(我学习的经验,不练习只读书根本学不会,过了练习这一关才勉强算会)所以为了有题目练习,我就在csdn上找了一个练习题,适合初学者。
链接放在这里:https://blog.csdn.net/qiucaijuan/article/details/6650925 java方向
说完了java基础,说说学习java的发展方向,我了解到的java方向有是三大方向:
1、JavaWeb(我还在打java基础,所以不能给伙伴们更多的信息)
2、androID 推荐书目
李刚老师的《疯狂androID讲义》第四版:
这个感觉就业比较少,我了解的也比较少,没法给伙伴们更多地建议了。
二、避坑 1、考研避坑 1、首先声明,想要考计算机的研究生,值需要学习C或者C++,不需要学习其他编程语言,原因是减轻负担和考研只用这门语言,除非一些特立独行的院校。
2、python和考研没有半毛钱关系,python和人工智能也没有半毛钱关系,人工智能只和数学有关系,考人工智能的研究生甚至不需要会编程。
1、python绝对不如java的好就业。
2、不要相信那些吹得天花乱坠的培训机构。
如有错误,请大家不吝赐教,不胜感激。
以上是内存溢出为你收集整理的Python还是Java? 如何选择编程语言?(编程发展方向 and 一些走过的坑)全部内容,希望文章能够帮你解决Python还是Java? 如何选择编程语言?(编程发展方向 and 一些走过的坑)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)