一直在自学编程,问问哪里能找到好作业题目和答案以及好的编程范例

  • 没头脑
    断断续续学习python也有2年多了,最近又重新开始看C语言,但是处于闭门造车的阶段,也能写个600行的程序用来处理数据,但是感觉代码量上来后对逻辑 架构要求高了,想重新补补课。

    网上看学编程之道就是码代码和看别人的代码,又在水区看坛友说做过MIT公开课CS的题目觉得很有启发,想问问python和C语言网上那些比较好的习题集和答案。另外从哪能找到值得学习别人写的代码,github肯定有非常多的好项目但是量太大了,动不动就上千行实在是看不动,有没有可以推荐学习的项目?
  • N
    Nov
    leetcode,interview.io,stackoverflow看解题思路,看best practice,看PEP,看当然最快的办法还是得有人带,有问题点拨一下省90%时间

    你这是遇到架构逻辑瓶颈了,不在大公司做项目,业余自学迟早遇到这一天,算是好事,很多人突破不了也就得过且过了

    剩下就是实战做项目了,项目规模大到一定程度反逼你必须考虑框架,另外除非真爱,C还是别学了,用的频率少,社区活跃低,不可能一步登天的
  • 望远镜一代
    mark
  • h
    hisame
    58同城,开始接单
  • t
    tit
    模式设计

    不知道这个概念现在还流行不,我是过气程序员。
  • t
    tgmj001
    做一个小项目。
  • j
    jiejieup
    自己多思考吧,别无他法
  • A
    Alloyo
    自己找一个流行项目来分解吧
    工科男社交github,前提懂点英语
  • s
    scheme
    如果是自学自用,模式架构这些感觉没必要学,因为你不需要和人划船,久病成医,自己慢慢就会找到方法

    实在想看可以找本比较原始的设计模式看看(因为越原始的越质朴,比较少玄学
  • j
    jackiehoo
    没有这么复杂,要找一个有能赚钱或者有实际用途的项目来做,才能提高自己。

    永远是自娱自乐哪有动力提高,遇到点技术难题就睡了。
  • 真TMD是个粪青
    找本好点的数据结构和算法的书,把后面的习题都编程写出来,都通过了,理论水平就有点了,去大公司面试也能忽悠忽悠了。

    如果偏实用的,就要学些实用的库框架什么,编点程序来解决些实际问题,或者找点项目做做。
  • 没头脑
    平时上班还是挺忙的,都是利用上下班路上看看教学视频,都是自己想个点子写代码实现,网上找活干兼职真是肝不动了,岁数大家里单位事太多。

    最近用python处理几个银行卡 微信 支付宝的流水,合并生成账单,就这么点excel也能干的事也断断续续写了快3个月才码出来600多行,目前大概达到当初的目标。

    开始看C是因为两个原因:
    1.在高中的时候家里电脑就慢慢接触编程了,C学了大概后慢慢开始C++结果就完全卡住,我没那么聪明自己看书真是学不明白也没人指点就放弃了,但是心里一直惦记着。现在网上视频发达自学方便了很多,想重拾当年的目标。
    2.现在的工作用到Project Wise,心里已经有些想法想实现,但是这个软件的API是C++的。这才下决心从C开始学到C++,以后写点小程序提高一下生产力。
    3.毕竟不是IT出身,对Computer Science没什么基础概念,想在学C过程中撸题补充一下Computer Science的基本概念。

    python的numpy和pandas也就会点最基本操作,能进行点数据处理,但是离大数据还很远。目前没想到合适点子,等以后项目完成真能有数据源了再看看有没有合适的项目。

    本帖最后由 没头脑 于 2020-5-5 12:26 通过手机版编辑
  • k
    kurapikar2009
    mark
  • s
    somesun
    想提高学c很好,毕竟你又不是急着找工作

    c的话就看一本, k&r c,c发明人写的,200多页,每章都有习题,做完足够了
  • 没头脑
    github适合初学者的流行项目给推荐一下吧,拜谢
  • j
    jzhl
    在知乎看到《从零开始的 JSON 库教程》挺好的,用c语言的。lz可以去看看。
  • 没头脑
    刚看了一下leetcode里面的题,我先最基本的概念都不完整,比如链表什么的。还是先跟着C语言再好好学一下吧,当初看python 的时候不知道是选择的教学视频问题,很多基础概念都没接触到
  • h
    henvelleng
    自学的最大问题在于很可能永远不会遇到怎么让自己的代码可维护可复用可拆分的问题,遇不到这样的问题就不会反思不会真正上道

    c基本上就是单片机在用,或者说直白点就是stm32在用,看你用不用得上了。当然各家芯片还会有自己的框架。低功耗,可穿戴,iot,等等。不过现在很多人号称搞机器人的,单片机都敢一窍不通,可能时代变了。
  • i
    isis520
    虽然我也是门外汉,但是我觉得C是基础中的基础,学习一下对学习其他语言有很大的帮助
  • 没头脑
    同感,会了python后就这个感觉。
  • k
    kives
    lz要去面试互联网企业修福报吗?不是的话刷啥leetcode,想补算法随便找一本书看看就可以,工作中轮不到自己写算法,了解下常用的数据结构特性就完了

    提升代码水平唯一途径就是看优秀源码,在自己多想多写,没别的方法了
  • l
    lobydenk
    。。。

    本帖最后由 lobydenk 于 2020-5-6 09:05 通过手机版编辑
  • s
    somesun
    https://item.jd.com/12513759.html

    学算法还是c牛逼
  • k
    klites
    看你目的吧,要做工具的话去找现成代码引用就是了,实在找不到再自己写
    纯粹是为了研究算法的话,语言其实不重要,因为全是数学问题,先搞懂算法逻辑,具体的实现不可能看不懂,看不懂就是具体实现的算法里又引用了别人的实现,他没解释,你又正好没见过,才会不懂
    有些东西是必须长时间积累才能融汇贯通的,软件这玩意基本是实践过程中遇到麻烦才采取了各种各样的设计,作为我个人来说,不遇到那麻烦,很难去理解某些玩意为什么要那么设计
  • h
    henvelleng
    c/cpp那个socket我感觉门槛高了,上来就搞多进程多线程啊,楼主链表都不知道,这就有点狠了讲真
  • k
    kives
    你这种情况想学算法的话我推荐: 啊哈!算法,大话数据结构这样的书,轻松易读,了解即可,实际编程中你用不到。

    码农日常开发也几乎用不到算法,如果你发现一个码农在看算法,那说明他要跳槽了,在准备面试
  • i
    iceliker
    不知道为什么都觉得C很难,难的那是C++

    C其实是一门非常简单的语言,硬的约束很少,反而因为太过自由,大部分C程序员写出来一堆bug的程序跑起来才知道,或者跑起来撞不倒触发条件也不知道

    但这也正说明了C是结合高级语言的可读性和低级语言效率最佳的一门编程语言,没有之一

    想体验纯粹的编程乐趣,C还是挺不错的,写出优美的程序自己都觉得高潮了
  • O
    OB
    水平进步的方式就是解决实际问题,跟着教程自学是绝对绝对绝对学不出来的,除非你奔着一个实际问题去,去解决它。
  • m
    mitaosi
    学习时用C没关系,刷LEETCODE用C除非你是大神不然挑战性太高了,大部分人都用PY、JAVA或C#吧
  • l
    lvcha
    学编程跟做题没什么太大关系。
    做软件是个工程项目。
  • z
    zenodante
    最有意思的当然是c啦,不学汇编很难写好c,因为无法理解为什么这样写比那样写在特定的系统里效率高高的原因。一般没有特殊需要不要搞c,特别年纪大了,c写的太high容易用脑过度,我曾有两次反复折腾c搞得发烧的经历,后来不太敢过分投入了。c++我看起来就是天书了,我只会当成带类的c来用。对自己好一点就写写python完了,啥库流行就整一整,人生苦短,代码差不多能跑就行了,慢就慢点,numba之类整上,充分利用numpy的向量化,速度还是可以接受的。一般多上上github,找找感兴趣的项目翻翻,stackoverflow上抄抄答案,就差不多了。
  • l
    lvcha
    最最简单的。你找个常用软件自己照着实现一个就行了。
    例如 notepad
  • h
    henvelleng
    汇编其实也没什么神奇的,我同事无聊蛋疼的时候拿汇编写过链表,我arm汇编也可以说得上很熟了(除了协处理器那一大坨指令,反正用的时候抄手册就完事了),然而并不觉得有什么意义。现代编译器的优化行为已经很难预测了,很多时候你以为的程序上的优化只是自作多情

    当然有句讲句,c程序员最起码还是知道进程的section是什么东西的,知道程序的每一个部分分别是被塞在哪个section里的理由和特性的,否则c代码没办法写
  • j
    jzhl
    c和java相差比较远,整个编程思路都不太一样,c++倒是有点像java。
  • c
    casaba22
    马克华菲
  • 再来一发
    leetcode,题目吊,高可达国际一线公司面试题水平。而且还有标准答案和分析,英语4级应该就可以直接看英文版

    如果不是科班出身直接刷估计挺累的,推荐最好要学过数据结构,否则答案可能会无法理解。建议上手先做easy的

    leetcode上的东西,一般来说普通码农也比较少用到,码农日常就是ctrl c ctrl v,还有stack overflow。做项目感觉和leetcode完全是2个不同的方向。

    如果纯为了兴趣,leetcode可以按照自己能力做几题,用来开拓眼界,这才是编程的艺术,倍有乐趣。而真正日常干活,其实就是枯燥的重复。

    [本帖最后由 再来一发 于 2020-5-7 00:37 编辑]
  • z
    zenodante
    那看写什么类型的代码了,信号处理,图像处理一类的问题懂汇编的写c代码,还是可以比较容易地超越编译器的,从高一层战略程度上的优化,不是去和编译器拼细节战术上的优化。一个很好的例子就是openmv在嵌入系统上对那些filter的优化,不懂汇编靠编译器是不行的
  • h
    henvelleng
    确实可能是工作性质不同,我日常用的opencv建立在应用层,就已经没有什么优化的余地了,不在处理流程和参数上犯傻就行