老板:“连设计张表都不会,怎么好意思从事程序员?”

本文分享了一位程序员在设计数据库表结构时遇到的挑战和教训,强调了基础知识的重要性,以及在编程实践中不断学习和深入理解的重要性。

分享职场攻略、程序开发、软件编程心得、创业资源等

文|洪生鹏

刚选择从事程序员这个行业,有次领导安排给我的任务,主要是设计表结构,虽然之前数据库数据也掌握些,可却未真正实践过,当自己动手做时,才发现自己对表设计,索引、外键等知识点掌握得模棱两可,真正实践起来问题不少,老板说,“连设计表都不会,怎么好意思当程序员的”。

于是下班路上想,回到住处也上网查资料如何解决。不怕你笑话,那时一门心思只想把事情做好,真担心因为自己原因没有把事情而被老板炒鱿鱼。都怪当初自己没有好好学习,大多数知识点都是一知半解,没有去深入理解,导致有的知识点都是停留在概念层面上,现在才会那么被动。

编程真的不是一件容易的事情,在编程的路上,我们总会遇到各种各样的难题和bug。有些基础知识点,如果不加以不重视,可能在实际开发中会给我们增加不少阻碍,影响我们定位bug,排查bug,甚至影响项目开发进度。

bug本来就不好处理,特别是有些bug,我们有时会一时束手无策,而此时领导又在询问进度如何,我们往往会感到沮丧,郁闷,甚至泄气。相信这类问题遇见多了的朋友越能深有体会这,基础的东西越是不重视,到后面阶段就会更加吃力。

基础知识如此重要,为何还是会被我们忽略了呢?类似这样的经历,不知你有没有经历过:

  • 读书的时候,课堂上老师讲解的内容,课上感觉好像是听懂了,于是下课了就没有复习,可过了几天,要是碰到类似的题型,做起来却很吃力。

  • 学习编程时,有的知识点看书的时候觉得挺好理解的,可并没有试着在机器编译运行,等到真正做项目的时候,才发现这样根本行不通。

  • 项目实际开发中,请教同事帮忙解决问题,同事帮忙解决了,自己要是没有再次加以理解消化,下来再遇到类似的问题还是觉得很吃力。

  • ……

一件事情,我们不仅要知其然,还要知所以然。要知其然容易,知所以然就不是那么简单了。有些知识需要我们花时间去尝试和摸索,积累一定的经验才能真正理解和掌握。

知识体系还不够丰富的时候我们可以不用刨根问底,但要留意我们自己的不足,随着开发经验知识的储备慢慢丰富,刚开始理解起来有难度的知识点慢慢就会迎刃而解了。

平时在学习过程中,要懂得善于充分利用网络资源,但请不要做拿来主义者,对于他人的解决方案要学着借鉴和吸取。他人的解决方案要学会转换成自己的,只有自己掌握了才是真的学会了,千万停留在表面的层次,而没有深入理解。

有时间的话建议写成博客,这样可以和同行互相交流,一来梳理了自己思路,二来或许能收到更大的收获,其他人能帮你指出其中的不足。

以上纯粹是个人看法,不知对此你有什么看法,欢迎交流!

【END】


往期精选推荐

原来睡前玩手机就这么多不好,得知这几个危害后我默默地放下手机

面试时,发现公司有这8个现象,建议你慎重考虑!

别总是跟自己的弱点较劲,那样只会让自己越来越弱


640?wx_fmt=jpeg

分享职场攻略、技术心得和创业资源

周末练习中,设计三个关联的数据库格可以模拟现实世界中常见的业务场景,比如用户、订单和商品的关系。这里我们可以假设这三个分别是: 1. **用户(User)**: - id (主键) - name - email 2. **订单(Order)** - order_id (主键) - user_id (外键,关联到User) - product_id (外键,关联到Product) - order_date 3. **商品(Product)** - product_id (主键) - name - price 为了填充1000万条数据,你可以使用脚本语言如Python的sqlite3库,或者SQL的INSERT INTO语句配合循环来生成随机数据。由于这个过程可能会占用大量时间和存储资源,一般会通过批量插入的方式来优化。 下面是一个简化的Python示例(假设数据量足够大并已分批准备好): ```python import random import sqlite3 # 连接到SQLite数据库 conn = sqlite3.connect('your_database.db') cursor = conn.cursor() # 定义创建的SQL语句 create_tables = ''' CREATE TABLE IF NOT EXISTS User ( id INTEGER PRIMARY KEY, name TEXT, email TEXT ); CREATE TABLE IF NOT EXISTS Order ( order_id INTEGER PRIMARY KEY, user_id INTEGER, product_id INTEGER, order_date DATE, FOREIGN KEY(user_id) REFERENCES User(id), FOREIGN KEY(product_id) REFERENCES Product(id) ); CREATE TABLE IF NOT EXISTS Product ( product_id INTEGER PRIMARY KEY, name TEXT, price REAL ); ''' # 执行创建的SQL语句 cursor.executescript(create_tables) # 假设每个用户购买多个商品,生成随机数据 num_users = num_products = 1000000 // 3 for i in range(num_users): user_name = f"user_{i}" user_email = f"user_email{i}@example.com" cursor.execute("INSERT INTO User VALUES (?, ?, ?)", (i+1, user_name, user_email)) # 随机选择商品,插入订单 for j in range(random.randint(1, 10)): product_id = random.randint(1, num_products) order_date = '2023-01-01' + str(random.randint(1, 365)) + '-01' cursor.execute("INSERT INTO Order VALUES (?, ?, ?, ?)", (i*1000000+j, i+1, product_id, order_date)) # 插入商品信息 for k in range(j+1): # 保证每个用户至少购买一个商品 product_name = f"product_{k}" product_price = round(random.uniform(10, 100), 2) cursor.execute("INSERT INTO Product VALUES (?, ?, ?)", (product_id, product_name, product_price)) # 提交事务并关闭连接 conn.commit() conn.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值