从实践中要编程的体验和感觉

2024-03-03 09:38

本文主要是介绍从实践中要编程的体验和感觉,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【来信】

  老师您好。

  有幸在这里见到您和您的学生。关于学习编程,麻烦您给点建议。
  基本情况,理科(力学)在读研究生,不小了,呵呵。本科阶段计算机编程没有系统学习,读研期间陆续读了一些计算机系统,数据结构,c/c++语言的推荐教材,公开课。只是这些层次的内容都停留在语法一些基本问题上,跟研究工作很难直接联系起来。而且这一两年对基本语法问题也算清楚的很,但就是有个“坎”没迈过去。
  举个例子,我工作中需要实现一个CFD(计算流体动力学)算法,算法思路已经ok,好了,到此,后面如何用c/c++ 实现,我就完全不知道从何下手了。
  对于我们这些不是计算机专业的学生,估计隐约都有点感觉,从基本的编程语法到写本专业的应用程序,缺少点什么过渡环节,或者前面说的, 感觉有个坎。基本语法都了解,自己专业的算法思路也清楚,就是端起电脑不知道怎么开始。
  另外,市面上编程书好像都是给计算机专业学生写的。所以也没有好借鉴的。
  非常感谢您能抽出一点时间,帮我解答下困惑。再次感谢。
  祝好

【回信】
  我初工作时的一个好朋友是学力学的,看见力学就亲切。注意到你没有说自己编过哪些,对于你所言的过渡环节,我首先想到的就是学习过程中的实践。程序设计要靠脑力,但其实践性很强,一定是有过实践以后,才能够真正实施的。
  实际上,不管用什么语言,应该是学程序设计,而不是学语言,语言只是个介质。这里有个误区,很多人一说要学计算机,学着用计算机解决问题,总得会一门语言吧,于是,将自己就投进学语言中去了。语法再熟,都是假的(这也适用于外语学习)。将程序设计整个过程中的各个环节都掌握了,而在语法上出现障碍,查一查手册,或百度一下,就过了。
  掌握了几门语言的计算机类专业人士,其实新学一门语言时,对程序结构、语法风格有一定了解之时,往往就开始工作了。在工作中,逐渐熟悉,逐渐能够将语言中特色的成份用好。相对而言,初学者学习第一门语言,语法相对熟悉一些还是必要的,这也涉及到“纯粹人的思维”向“靠近机器的思维”转换的问题。
  如果你真是是局限于看书、看视频,而不是自己写程序的话,现在可以通过写一些不是太大的程序,体会程序设计的过程,找到感觉。既然你做的是科学计算,可以从做一些简单的计算程序开始。不妨先放下你现在的CFD,用弦截法、牛顿法解解方程,用迭代法解解线性方程组,或者干脆就去实现一些求均值,求方差之类的统计。如果语法真熟悉的话,这个坎也快过。
  想过建议你读一些科学计算的源码。不过,可能你读书而不实践由来已久了,不必这样。
  也想过建议你找来用C/C++实现科学计算的书。我在亚马逊查到了本《常用算法程序集(C/C++描述)(第5版)》好像在图书馆也见过,你可以借来,但不要只看,自己把例程输进去调试调试。
  要用C++科学计算,还有不少现成的算法库可以使用,不过这是后话了,你现在起步了,什么都好说。
  还有个念头,科学计算用C++并不是最好的选择,MATLAB该是首选。长期做下去,可以择机学一学MATLAB。

  不知有没有说到点子上,仅供参考。




china-pub(正在发售)
卓越网(接受预订) 
图灵社区  官方试读本下载
豆瓣
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新)  ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

  
    






这篇关于从实践中要编程的体验和感觉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实