当我掉入计算机的大坑中时,遇到简单的题也很吃力,这可如何是好呢?

news2025/1/12 12:27:46

一支笔,一双手,一道力扣(Leetcode)做一宿!!! 

一、分享自己相关的经历

我们可能经常听到这句话,人永远赚不到认知以外的钱,如果把它放到程序员行业来说,同样适用,程序员永远写不出认知以外的代码

一个优秀的程序员和一个糟糕的程序员,它们之间的差别并不一定是编码技能。多数情况下,这个差异存在于一些更基本的东西中,对一件事情的不同看法以及用什么的态度和方式去看。

当局者迷,旁观者清,自己并未察觉的一些坏习惯,正是阻碍你成为优秀程序员的绊脚石。

  • 我的代码是最好的:有一个事实是,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。太过自负是所有程序员身上的一个非技术性的最大的一个毛病。不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。保持谦虚,试着从周围人那里学习经验。如果你开始盲目地相信自己的伟大,那就意味着你的创造力开始消失。当你开始认为自己无所不知,没有什么可学的时候,你的学习自然就停止了。
  • 喜欢走捷径:走捷径确实很诱人,可能每个人都这么做过。国情现状、社会风气、互联网公司的节奏等各种因素,在客观上促使我们在工作上对于捷径与效率的盲目崇拜,结果和代价自然也是惨痛的,这两年的光景大家也看到了。需求分析、架构讨论、技术推演,综合考虑开发原则、维护成本,解决技术债务,有些过程是必要的,一条走错的捷径可能会为你节省几个小时,但可能会带来数月的麻烦和额外的损失,打好扎实的基础知识与技能,重视设计文档编写,更多的思考工具的产生与原理,而不仅仅是工具的使用者。欲速则不达,通往卓越之路没有捷径。
  • 不重视文档:知乎上有一个问题是中外程序员的差异,高赞回答里提到一项就是,国外优秀的程序员非常重视文档的编写,它和写代码一样重要。因为优秀的程序员会意识到,与任何其他业务功能一样,软件开发团队总是处于变化中。新来的、转岗的、退休的程序员来来往往,一份清晰易懂的设计文档是提高团队效率的重要资产。在任何这些场景中,访问设计文档、API 规范、说明手册和代码注释都可能成为项目的制胜关键。
  • 为薪水工作:虽然工作的一大目的是获取薪水,养活自己以及供给家庭所需。但是,这只是工作最直接的回报,同时也是最低级的目标。如果我们只是为薪水而工作,将注定我们是短视的,也将注定难以成长。假如你看不到工资以外的东西,斤斤计较于薪水、福利、职位等,你很快就会失去平衡,失去信心,失去热情,失去平和,进而在工作时总是采取一种应付了事的态度,能少做就少做,能躲避就躲避,觉得只要对得起自己的那份薪水就成了。不愿付出努力,做事拈轻怕重,不愿挑战。缺乏责任心,消极抱怨,这些会让你的负面情绪蔓延,蚕食你的精力和时间,最终,你追求的高薪水也将不复存在。
  • 只关注技术实现,不关注业务逻辑,不关心用户体验:一个优秀的程序员总是能发现问题并解决问题。他们努力地去理解系统架构的所有部分是如何协同工作,以及它们处于何种状态。他们会去质疑特性背后的设计和思想,以找到更好的解决方案。他们明白什么是好的用户体验。而另一方面,一个糟糕的开发人员会依附于他们喜欢的技术。他们认为单一的方法或流程才是“理想的”,用户体验和实际情况永远不应该去驱动决策。他们将不必要的依赖关系引入到项目中,以满足他们自己的偏好。
  • 知识面太窄,好奇心太少:程序员这个行业,即要求深度,又要求广度。而广度,是无法一蹴而就的。 就是靠积累,长期的积累。如今的互联网如此发达,基本不存在你想要学习,找不到途径的情况。社交网络、书籍、网站、App、只要你有一颗探索世界的好奇心,总能发现更大的舞台。 最后,博采众长,触类旁通。
  • 其实不喜欢写代码:很多人从事软件开发工作,并不是因为喜欢,可能是这个行业火,薪水高,入行门槛低。人做一件自己不喜欢的事情时,心理上没有亲近感,不会想着怎样把事情做得更好,往往是差不多就成了,不太可能有精益求精积极向上的追求。做喜欢的事,能最大可能发挥一个人的潜能和热情,会最快速地通向成功成就自己。而做不喜欢的事,一开始就注定了事倍功半,最后也往往会是痛苦不堪或半途而废。软件开发的技术日新月异,而每一项技术又往往博大精深,不持续、深入钻研是很难掌握的,更别谈精通了。没有热爱加持,终究无法远行。

最后,想要成为一名优秀甚至顶级的程序员,拥有良好的态度和习惯,比拥有多年的经验更重要。以乔布斯的名言共勉:Stay hungry,Stay foolish!

 

自学编程的难点在哪儿? 

编程本来并不难,但是你没有基础,缺乏计算机基础知识,那就非常困难,难于上青天。

  • 方向难:编程行业是有分工的:有做前端网页的,有做移动端ios的、安卓的,有做后台的。做网页的,有用jq+原生js的,有用vue.js,有用react的;做安卓的,又可以分做底层嵌入式驱动的,做系统框架的,做应用的。做后台的,又分为很多框架,技术栈和语言不同,java ,.net,python等等各领风骚。选择一个好的方向,难!因为每个分工没有优劣之分。也许你只是想混口饭吃,不在乎做哪方面。我的想法是,兴趣是最好的老师,用它来告诉你。
  • 基础难:在学习上面知识之前,你还得先打下基础,毕竟没有不会走路的婴儿能够跑步的。要学的基础很多,包含计算机的组成,网络通信协议,数据结构等等。基础就像地基,不稳固的话,你的代码就会摇摆不稳,随时有崩塌的危险。基础的学习,涉及到的概念会比较多。就如一开始的二进制知识原码,补码,反码,就常常令人发疯。学到什么程度呢?那培训出来的人那样,可以手写java虚拟机的程度吗?完全不必,我想出来工作10几年的都没几个人能到达那种大神境界。能笔试通过就够用了。基础的学习,可能就得花去你两三个月的时间,还是在你有毅力坚持的情况下。
  • 实战难:你按照教程的步骤一步步操作,发现怎么一开始搭个环境都不行,这个版本怎么跟我的不一样这么旧。好不容易环境没问题了,怎么我的代码就是运行不起来,明明看起来跟书本是一样的。错误千万条,条条通向bug。自学的人往往身边没人合适的可以请教的人,教程一般来说都会相应落后,实践的例子大多是demo样例级别,跟工作中用的东西差别很大。这三个搞在一起,想死的心都有了。你会发现学习了大半年,项目经验却基本为零。
  • 精通难:自学编程,遇到的问题基本上都是自己摸索解决的,有些东西可能也暂时无法解决。由于没有实际的工作经验,没有处理和积累过工作中会遇到的各种突发问题,没有参与大型的高复杂度的软件设计,缺乏跟同事们的技术交流,技术会达到瓶颈,也很难养成良好的编程规范。

  

二、分析可能存在的问题

  1. 学习方法:学习方法可能影响我们的学习效果。如果我们的学习方法不合适,可能会导致我们在学习过程中难以理解或掌握知识点。例如,如果我们没有适应学科的思维方式或学习方法,就可能会在学习中遇到困难。
  2. 态度和动力:学习的态度和动力也可能会影响我们的学习效果。如果我们缺乏积极性和热情,可能会导致我们在学习中遇到困难。我们可能缺乏对自己的学习的关注和重视,没有持续的学习动力,导致我们无法坚持学习或者在解题时感到力不从心。
  3. 知识储备:知识储备也是影响我们解题能力的一个重要因素。如果我们的知识储备不足,就可能无法理解题目的背景和要求,从而难以解决题目。例如,如果我们没有掌握相关的基础知识或者对学科的概念和原理理解不够深入,就可能会在解题时感到困难。

为了解决这些问题,我们可以采取以下措施: 

  1. 调整学习方法:我们可以尝试寻找适合自己的学习方法,例如通过阅读、听讲、练习等方式来提高自己的学习效果。我们还可以尝试使用一些学习工具,如笔记、思维导图等,帮助我们更好地理解和记忆知识点。
  2. 激发学习动力:我们可以尝试找到激发自己学习动力的方法,例如制定学习计划、设定目标或者奖励自己。我们可以尝试找到学习的乐趣和动力,从而更加积极地投入到学习中。
  3. 巩固知识储备:我们可以回顾自己的基础知识,确保我们对学科的基本概念和原理有深入的理解。我们还可以通过阅读相关书籍、参加课程或者与他人交流来扩大自己的知识面。

 

 

 三、根据问题进行分解或建立思维导图

  1. 分解问题:

    • 将复杂问题分解成更小的部分或子问题。
    • 确定每个子问题的关键要素,例如概念、公式、解题方法等。
    • 将这些要素组合起来,形成解决问题的步骤或策略。
  2. 制作思维导图:

    • 选择一个中心主题或关键词,作为思维导图的核心。
    • 从中心主题或关键词开始,向外扩展出与之相关的子主题或次级关键词。
    • 使用不同颜色、形状和字体来区分不同的主题和子主题。
    • 可以在思维导图中使用图形、符号、图片等元素,以增强视觉效果和记忆。
  3. 分享理清思维的方法:

    • 与他人交流:与他人交流你的想法和观点,可以从他们那里获得反馈和建议。
    • 创造性的思考:尝试从不同的角度思考问题,寻找新的解题方法。
    • 反思和总结:定期回顾和总结自己的学习过程,找出自己的不足之处,并制定改进的计划。

 

 四、分享好用的刷题网站并进行介绍

leetcode,中文名为力扣,是一个为全球程序员提供 IT 技术职业化提升的平台,提供了完善的在线判题服务、学习工具、社区讨论及模拟面试功能,全方位打磨程序员职业所需的核心技能。力扣为用户提供了多种多样的开发工具,适用于真实的日常技术开发和学习场景。其中,Playground 无需设置环境,就能够帮助用户进行测试、开发、学习,甚至直接在线完成整个项目,拥有强大的在线刷题网站,海量编程题在线刷、在线判,还有成熟的讨论区。

 

 

 

赛码网(ACMCODER)是一家专注在线IT编程考试、在线编程竞赛及IT技能实训的网站。也是一家运用跨界思维,将大赛技术应用于解决IT考试问题的平台。依托Online Judge在线判题系统(简称OJ)为核心技术。 百度、滴滴、美团、携程、字节跳动首选的在线面试系统,想进大厂赶紧来塞码。

 

LintCode是一个集合了大量算法面试题和AI面试题的网站,它为全世界的码农提供了练习自我技能的良好平台,针对算法、大数据、人工智能更有优势,还有力扣的付费题。

 

牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。牛客网题库中包含几万道题目,主要通过第三方购买和 UGC 的方式获得,牛客网先后尝试了直播和录播课,内容覆盖笔试题解析、面试技巧和机器学习等,校招,一定要关注。

 

 

PTA

 

洛谷

 

 

  1. 题目类型和难度:不同的网站提供的题目类型和难度都有所不同。你可以根据自己的水平和学习目标,选择适合自己的题目类型和难度进行练习。
  2. 解决方案和解释:一些网站提供了详细的解决方案和解释,可以帮助你更好地理解题目背后的原理和思路。如果你希望在理解上得到更好的帮助,可以选择这些网站。
  3. 社区和支持:一些网站提供了社区和支持,你可以与其他的学习者交流经验和思路,获取反馈和建议。如果你希望在学习过程中得到他人的支持和反馈,可以选择这些网站。

 


好啦,小雅兰的今日分享就到这里啦,继续加油噢!!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信加粉计数器后台开发

后台包括管理后台与代理后台两部分 管理后台 管理后台自带网络验证卡密系统,一个后台可以完成对Pc端的全部对接,可以自定义修改分组名称 分享等等代理后台 分享页 调用示例 <?php$request new HttpRequest(); $request->setUrl(http://xxxxxxx/api); $request->…

ROS:URDF、Gazebo与Rviz结合使用

目录 一、机器人运动控制以及里程计信息显示1.1ros_control 简介1.2运动控制实现流程(Gazebo)1.2.1为 joint 添加传动装置以及控制器1.2.2xacro文件集成1.2.3启动 gazebo并控制机器人运动 1.3Rviz查看里程计信息1.3.1启动 Rviz1.3.2添加组件 二、雷达信息仿真以及显示2.1流程分…

路径规划算法:基于人工兔优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于人工兔优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于人工兔优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

浮点数的近似保存与计算

这里写目录标题 负数的补码存储十进制浮点数与二进制的转换有限循环的二进制无限循环的二进制 计算机对浮点数的保存无限循环二进制数的保存浮点数的近似 参考文献 负数的补码存储 首先我们回忆一下负数的补码表示。我们都知道&#xff0c;有符号数的负数使用补码的方式进行存…

WVP+ZLMediaKit实现网络摄像头接入

​ 记录下本地调试监控摄像头相关信息。 参考来源&#xff1a;部署 WVPZLMediaKit 实现大华摄像头接入_wvp zlm_鬼畜的稀饭的博客-CSDN博客 ZLMediaKit 代码地址 WVP 代码地址 ⚠️ 摄像头需要连接PoE设备来供电&#xff08;插网线就能供电&#xff09; 资源清单&#xff1a…

如何通过设备管理系统实现设备全生命周期管理

设备是生产力的核心&#xff0c;对企业的运营和效益起着至关重要的作用。然而&#xff0c;随着设备数量和复杂性的增加&#xff0c;如何有效管理设备的全生命周期成为了一个挑战。 在这个时代&#xff0c;设备管理系统成为了一种重要的工具&#xff0c;帮助企业实现设备全生命周…

LJUBOMORA - 思维+二分

分析&#xff1a; 二分最小的嫉妒值&#xff0c;每次check需要判断每一种颜色需要分给几个小朋友&#xff0c;如果可以所有都分完那么返回true。 代码&#xff1a; #include <bits/stdc.h>using namespace std;typedef long long ll; typedef pair<int,int> pii;…

[QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标

目录 3. QT窗体设计 3.2 自定义工具栏 3.2.1 目标 3.2.2 实现过程 3.2 自定义状态栏 3.2.1 目标 3.2.2 过程 3.3 自定义动作快捷键 3.4 自定义图标 3. QT窗体设计 3.2 自定义工具栏 在Qt中&#xff0c;ToolBar&#xff08;工具栏&#xff09;是一种常见的GUI元素&a…

【MEX】CF1629 C

Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 模拟样例 可以发现做法是对该数列进行分段&#xff0c;当当前mex在后缀没有出现过时&#xff0c;形成一个区间[l,r] 然后有两个问题&#xff1a; 1.mex怎么去维护 2.怎么看mex在后缀有没有出现过 对于第一个…

提高Spark性能的关键:动态资源分配

前言 Spark提供了一种机制,可以根据工作负载动态调整应用程序占用的资源。这意味着,如果不再使用资源,应用程序可能会将资源返还给集群,并在以后有需求时再次请求这些资源。如果Spark集群中有多个应用程序共享资源,则此功能特别有用。 该功能在默认情况下被禁用,并且在…

107-免杀对抗-CC++溯源ShellCode上线混淆变异算法回调编译执行

知识点 #知识点&#xff1a; 1、ShellCode-分析&朔源&感知 2、ShellCode-混淆&编码&算法 3、回调执行解析-API&汇编&句柄#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定…

拖拽示教功能块(含算法介绍和完整SCL ST源代码)

这篇博客介绍简单拖拽示教功能的简单原理,在了解示教功能之前大家需要熟悉运动控制相关的内容,这篇博客我们以脉冲驱动为例介绍,所以大家可以先熟悉下脉冲控制功能块,有关运动控制的相关内容,可以查看运动控制专栏,主要链接如下: SMART PLC和V90伺服实现外部脉冲位置控…

【VUE】解决图片视频加载缓慢/首屏加载白屏的问题

1 问题描述 在 Vue3 项目中&#xff0c;有时候会出现图片视频加载缓慢、首屏加载白屏的问题 2 原因分析 通常是由以下原因导致的&#xff1a; 图片或视频格式不当&#xff1a;如果图片或视频格式选择不当&#xff0c;比如选择了无损压缩格式&#xff0c;可能会导致文件大小过大…

《3.linux应用编程和网络编程-第9部分-3.9.linux网络编程实践》 inet_addr inet_ntop inet_pton htons

3.9.1.linux网络编程框架 3.9.1.1、网络是分层的 (1)OSI 7层模型 &#xff1a; 理论指导&#xff0c;7层 (2)网络为什么要分层 网络太复杂 (3)网络分层的具体表现 我们只研究 APPAPI 3.9.1.2、TCP/IP协议引入 (1)TCP/IP协议是用的最多的网络协议实现 (2)TCP/IP分为4层&#xf…

浙大数据结构第三周之03-树1 树的同构

题目详情&#xff1a; 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2&#xff0c;则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的&#xff0c;因为我们把其中一棵树的结点A、B、G的左右孩子互换后&#xff0c;就得到另外一棵树。而图2就不是同构的…

Python物联网开发-Python_Socket通信开发-Python与Tcp协议物联网设备通信-Socket客户端

一、前言 Python在物联网开发中的重要愈来愈重&#xff0c;因此&#xff0c;掌握Python语言与物联网设备之间的通信就显得尤为重要&#xff0c;可以通过编写Python程序实现获取物联网设备的传感器数值并可以更改物联网设备上的执行器状态。 二、程序实现 首先&#xff0c;当使…

中位数(树状数组+二分)

L-中位数_2023河南萌新联赛第&#xff08;一&#xff09;场&#xff1a;河南农业大学 (nowcoder.com) 树状数组二分 #include <bits/stdc.h> using namespace std; typedef long long ll; const int N2e6; const long long inf 0x7f7f7f7f7f7f7f7f; #define endl \n in…

【Android Framework系列】第5章 AMS启动流程

1 AMS简介 AMS&#xff08;Activity Manager Service&#xff09;是Android中最核心的服务&#xff0c;管理着四大组件的启动、切换、调度及应用进程的管理和调度等工作。AndroidQ将Activity移到了ActivityTaskManagerService中&#xff0c;但也和AMS相关联。 AMS通过使用一些…

【来不及刷题之】44、滑动窗口最小值

暴力方法&#xff1a;超时 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int nnums.length;int sizen-(k-1);int[] resnew int[size];int slow0,quickk-1;int maxNumfindMax(nums,slow,quick);res[0]maxNum;while (quick<n-1){quick;int addNumnums…

66. 两个链表的第一个公共结点

目录 链接&#xff1a; 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 图片&#xff1a; 链接&#xff1a; 原题链接 题目&#xff1a; 输入两个链表&#xff0c;找出它们的第一个公共结点。 当不存在公共节点时&#xff0c;返回空节点。 数据范围 链表长度 [1,200…