文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从小开始学编程的小姐姐自述:我变成更好程序员的三点心得体会

2024-12-24 21:42

关注

编者按:最近,国外一名小姐姐分享了自己的编程学习经验,引起了不少关注。她名为Keri Savoca,小时候就学了HTML并开发了网站。之后又学习了SQL语言以及JavaScript和Ruby等。在这个过程中,她也积累了不少感悟与经验,并分享了出来。有人阅读了之后称,文章里面的确有比较扎实的干货。希望能够给你带来启发。

编程并不是要你告诉计算机做某事

很多人都以为,编程就是要告诉计算机去做某事,就只需要编写一个命令,就像 do X一样,问题就解决了。

这其实是一个很大的误解,编程需要的不是do X,而是:

等等。

只有开始写代码来解决实际问题,才能意识到这一点。

比如说,从BigQuery 中提取一组数据,并将其连接到Data Studio中做条形图。

一般情况下,可以通过点击按钮对X轴上的参数进行升序或降序排序,但你想要根据BigQuery中的维度进行自定义排序的手,就需要代码来解决这个问题了。

假设想要完成的X轴上的排序顺序是:A, D, E, B, C, F,排序顺序与其在“table001”中“location”维度有关系,可以这样解决:

  1. ELECT *, 
  2. CASE 
  3. WHEN location = ‘A’ then 1 
  4. WHEN location = ‘D’ then 2 
  5. WHEN location = ‘E’ then 3 
  6. WHEN location = ‘B’ then 4 
  7. WHEN location = ‘C’ then 5 
  8. WHEN location = ‘F’ then 6 
  9. ELSE 0 
  10. END as SortOrder 
  11. FROM 
  12. table001 

现在可以根据 SortOrder 进行排序,这是自定义的,而不是升序或降序。

这就是所谓的do X,但编程远远没有结束。因为这些只存在于控制台中,而没有实际应用。

编程到这个阶段,才刚刚完成了一半。

这听起来像是一个常识,但对于刚开始编程的人来说,可能需要过一段时间才能够在概念上有所理解与体会。

写代码是为了解决问题,不要太依赖教程

但根据说明性教程学习编程的时候,却很难学到这一点。

因为你不是在真正解决一个问题,而是在遵循一系列的指令。

当你正确的遵循这些指令的时候,就会产生一个特定的结果。

但如果你要去解决一个尚未解决的问题时呢?就没有任何指令可以遵循了。

在学习编程的时候要注意到,学习到的技能应该是可以转换的。如果你不能把你练习的技能应用到不同的场景中,跟着教程学习就没有意义。

基于这方面考虑,上面的示例应该要加上because这个词:

当你学会了制作一个待办事项列表应用程序的时候,你应该学到的是,如何使用相同的概念来使应用程序以类似的方式运行。

多试试伪代码,可以提升算法思维

当写出来的代码没法运行的时候,你要怎么做?

很多人的方式是试错,尝试不同的方法来解决问题。

结果无非两种:要么终于起作用了,要么不起作用。

这并不是在于对编程语言缺乏理解,而是算法思维上的问题。

比如你想写一段代码,从Y那里得到X,然后放到Z里面。

却发现不知道从哪里得到了Z,然后试着把它放到了X中。

该怎么办?只是试错可能解决问题,但很难知道到底哪里错了。

一种英国学校学生经常玩的游戏“FizzBuzz问题”通常被用来当做编程面试中的题目,也可以作为练习“伪代码”的测试:

写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。

技术博主闻波(webary)在过去的一篇博文中说,就这样的一个小问题,很多优秀程序员顺手就能写出来方式,但很多计算机专业的毕业生都不会做或者花费更多的时间去做。

背后的原因,就是忽略了如何想出解决问题的办法,而是一上来就想代码实现的问题。

而伪代码是一个比较好的方式,会引导你从算法开始思考。

这不需要你去考虑用什么语言来解决问题,而是先想出解决问题的办法。

原文链接:
https://medium.com/better-programming/the-3-realizations-that-made-me-a-better-programmer-af7d1bcab4d3

简单却又复杂的FizzBuzz面试编程问题
https://www.cnblogs.com/webary/p/6507413.html

 

来源:量子位内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯