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

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

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定