如何快速融入新公司
- 2019 年 10 月 11 日
- 筆記
一個人的職業生涯中,換幾家公司,跳幾次槽是很正常的事情。進入新公司後,幾乎都有一個適應期。而且很多公司根本不會給太多的適應期,幾乎就是要立即挑重擔的。
在面對新的環境,新的崗位,新的挑戰,大家難免都會有焦慮和不適應, 怎麼快速度過這個適應期,迅速調整自己的心態和狀態來適應新的挑戰。這裡從軟實力和硬實力兩方面來探討。
軟實力:多跟大家交流。
有人的地方就有江湖,很多程式設計師不善於交際,但是人在江湖,身不由己。良好的人際關係是做好任何事情的前提。 入職第一天,和同事打過招呼後,要用心記住他們的名字,下次見面,主動打招呼的時候,先叫名字,對方會感受到你對他的尊重和關注,會對你的印象深刻,好感度也直線上升。 多參加一些團體活動,盡量和大家一起吃飯,可以很快的建立起同事間的情感。你可以想辦法多和老員工聊聊天,去了解一下公司的人事結構、業務情況等。這也許可以從側面了解一些人。可以不搞辦公室政治,但是也避免別拉下水。 不管是否工作交集有多少,都要學會微笑示人,微笑是化解人和人之間的距離感的最佳武器。
保持一個謙虛學習的心態 到了新環境中,你不知道的資訊太多,判斷失誤大有可能。 不要自我感覺過於良好,覺得自己超厲害,覺得周圍的人都能力平平。聰明的人都懂得韜光養晦,能看清自己的位置,擺正自己的心態。 如果所以自視過高,缺少敬畏之心。當這種潛意識存在的時候,你一定會在各種事情的細節中體現出來,總有一天會栽大跟頭。職場中最忌諱就是貶低別人來抬高自己。
少一些抱怨,多一些行動 沒有公司是完美的。小公司,大公司,都有一堆噁心的程式碼,過時的文檔,不盡人意的流程。進入到一個新團隊後,不要跟大家抱怨。就算你說得十二分的正確,別人只能把你的善意提醒,當成是負面能量,沒有人會主動去改變什麼,特別不是份內的事情的時候。如果你能在完成自己本分的事情之餘,能將一些事情弄完美,也許會有人看見。
認真完成每一個任務,不要貪多求快 如其把三件事情做到70分,不如把一件事情做到90分,甚至100分。你個人的自信和別人對你的信任,是建立在一個又一個高分任務的基礎上的。每個分配到手的任務,你都能做到超出預期,那每個任務都能增加你leader, 周圍同事對你的信任,增強你的口碑。反之,每件事情,都只做到及格線,就給大家留下不靠譜的印象了。
硬實力:專業能力
專業是職場的通行證,任何時候,專業能力強,是讓你能融入一個團隊的必備要素。入職新工作,你能快速掌握崗位的基本要求,能快速了解公司的產品種類,一切工作都能快速上手。當你發現自己不熟悉公司的技術棧時,得自己想辦法補起來。如果發現自己的不足,努力追趕。
快速熟悉產品
為了快速的融入產品研發,需要自己從宏觀和微觀去把控產品或項目。產品的基本功能,有什麼功能,達到什麼目的,現在好壞,沒事的時候,自己多體驗一下產品,多看看原型圖,設計稿。疑惑的地方,可以先記下來,說不定後面就迎刃而解。
快速熟悉流程和架構
可以通過文檔或者同事交流,逐漸了解一些組織架構,跟你工作交接的人,他們的角色,脾氣和秉性。 產品開發流程,測試流程以及上線流程,是否是敏捷開發模式,迭代周期,是否A/B testing等。 例如: a.開發工具 b.開發環境、調試環境、測試環境(公司的開發伺服器、調試伺服器); c.編程規範以及產品開發要求 d.相關文檔; e.源碼管理工具等;
了解軟體系統框架。
系統是集中式系統,還是分散式系統? 是否用了微服務? 用的是何種資料庫系統? 介面服務用的是何種組件? 快取系統用的是redis還是memchache? 消息隊列實現方式 如何實現性能和日誌監控? 如何實現伺服器的調度和管理?
了解業務
在做設計研發,不了解業務,很多時候是沒法開展工作的。如果業務複雜,也沒有文檔,而且沒有人給你講解,怎麼辦?只能自己摸索了。
了解業務的的好的方法,是了解介面和資料庫,不管何種業務,大部分是要調用介面,存儲數據的。下面就從sqlserver以及mysql來嘗試去了解業務了。
先看sql server
也許我們知道某個模組或者某個業務,常聽人討論某個業務的名字,我們可以簡單去資料庫里查詢業務對應的表。 模糊查詢表的名字
SELECT * FROM sys.objects WHERE name LIKE '%Members%' AND type = 'U' select name from sys.objects where type='U' and name like '%session%'
然後我們去看看庫, 查詢表在哪個庫中
declare @tableName nvarchar(255),@sql nvarchar(1000) set @tableName=N'MemberSession' set @sql=N'use ? if exists(select 1 from sysobjects where id=object_id('''+@tableName+''')) print ''?''' exec sp_msforeachdb @sql
查詢庫的資訊
查詢有哪些庫 SELECT Name FROM Master..SysDatabases ORDER BY Name 查詢某個庫中有哪些表: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_SCHEMA.TABLES 某個庫中的表資訊 SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('Members') SELECT * FROM INFORMATION_SCHEMA.TABLES SELECT * FROM INFORMATION_SCHEMA.VIEWS SELECT * FROM INFORMATION_SCHEMA.COLUMNS
如果知道一個欄位,但是不記得在哪個表中, 可以用以下查詢欄位在哪些表中
SELECT b.name as TableName,a.name as columnname From syscolumns a INNER JOIN sysobjects b ON a.id=b.id where b.type='U' AND a.name='memberid'
查詢表有哪些欄位:
最簡單: Select Name FROM SysColumns Where id=Object_Id('Main.dbo.Members') 簡單: USE ET_Main SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('Members') 複雜: USE ET_Main DECLARE @tableName NVARCHAR(MAX); SET @tableName = N'Members'; --表的名字!!! SELECT CASE WHEN col.colorder = 1 THEN obj.name ELSE '' END AS 表名, col.colorder AS 序號, col.name AS 列名, ISNULL(ep.[value], '') AS 列說明, t.name AS 數據類型, col.length AS 長度, ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小數位數, CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 標識, CASE WHEN EXISTS ( SELECT 1 FROM dbo.sysindexes si INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN dbo.sysobjects so ON so.name = si.name AND so.xtype = 'PK' WHERE sc.id = col.id AND sc.colid = col.colid ) THEN '√' ELSE '' END AS 主鍵, CASE WHEN col.isnullable = 1 THEN '√' ELSE '' END AS 允許空, ISNULL(comm.text, '') AS 默認值 FROM dbo.syscolumns col LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype INNER JOIN dbo.sysobjects obj ON col.id = obj.id AND obj.xtype = 'U' AND obj.status >= 0 LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id LEFT JOIN sys.extended_properties ep ON col.id = ep.major_id AND col.colid = ep.minor_id AND ep.name = 'MS_Description' LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id AND epTwo.minor_id = 0 AND epTwo.name = 'MS_Description' WHERE obj.name = @tableName --表名 ORDER BY col.colorder
查詢某個庫中,表的主鍵和外鍵被誰引用:
USE Oboe SELECT 主表名=object_name(b.rkeyid) ,主鍵列ID=b.rkey ,主鍵列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) ,外鍵表ID=b.fkeyid ,外鍵表名稱=object_name(b.fkeyid) ,外鍵列ID=b.fkey ,外鍵列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) ,級聯更新=ObjectProperty(a.id,'CnstIsUpdateCascade') ,級聯刪除=ObjectProperty(a.id,'CnstIsDeleteCascade') FROM sysobjects a join sysforeignkeys b on a.id=b.constid join sysobjects c on a.parent_obj=c.id
然後嘗試各種表的查詢,結合介面和產品,就可以慢慢熟悉一些業務了。
如果是在mysql中: 一、簡單描述表結構,欄位類型
desc tabl_name;
顯示錶結構,欄位類型,主鍵,是否為空等屬性,但不顯示外鍵。 二、查詢表中列的注釋資訊
select * from information_schema.columns where table_schema = 'db' #表所在資料庫 and table_name = 'tablename' ; #你要查的表
三、查詢列名和注釋
select column_name, column_comment from information_schema.columns where table_schema ='db' and table_name = 'tablename' ;
四、查看錶的注釋
select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'
五、查看錶生成的DDL
show create table table_name;
六、查詢庫下所有的表名
SELECT table_name FROM information_schema.tables WHERE table_schema='庫名'
七、模糊表名查詢
SELECT table_name FROM information_schema.tables WHERE table_schema='庫名' AND table_name LIKE '表名前綴%'
查看當前使用的資料庫 select database(); 查看資料庫使用埠: show variables like 'port'; 查看資料庫編碼: show variables like 'character%'; 查看資料庫的所有用戶資訊: select distinct concat('user: ''',user,'''@''',host,''';') as query from mysql.user; 查看某個具體用戶的許可權: show grants for 'root'@'localhost'; 查看資料庫的最大連接數: show variables like '%max_connections%'; 查看當前打開的連接的數量: show status like 'threads_connected'; 查看資料庫當前連接並發數: show status like 'Threads%'; 查看數據文件存放路徑: show variables like '%datadir%'; 複製表結構:create table table1 like table; 複製數據:insert into table1 select * from table
機器授權:
grant select on . to 'reader'@'%' identified by '123456' WITH GRANT OPTION flush privileges
修改表結構
alter table competitor_goods add sku_id bigint(20) unsigned DEFAULT NULL COMMENT '商品銷售碼';
SHOW DATABASES //列出 MySQL Server 資料庫。 SHOW TABLES [FROM db_name] //列出資料庫數據表。 SHOW TABLE STATUS [FROM db_name] //列出數據表及表狀態資訊。 SHOW COLUMNS FROM tbl_name [FROM db_name] //列出資料表欄位 SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。 SHOW FULL COLUMNS FROM tbl_name [FROM db_name]//列出欄位及詳情 SHOW FULL FIELDS FROM tbl_name [FROM db_name] //列出欄位完整屬性 SHOW INDEX FROM tbl_name [FROM db_name] //列出表索引。 SHOW STATUS //列出 DB Server 狀態。 SHOW VARIABLES //列出 MySQL 系統環境變數。 SHOW PROCESSLIST //列出執行命令。 SHOW GRANTS FOR user //列出某用戶許可權
業務如果複雜,不是一朝一夕的就能掌握的,如果工作中常常有意識的去思考一下,結合自己的實踐,多看看介面,多查查資料庫。跟同事多交流,慢慢的,也會對業務有所了解了。
融入一個新的團隊中時,肯定會遇到很多困難,如果有人交流,那是最好不過的了。如果沒有,唯有自己不斷的學習和實踐,才能不斷提高。
來源微信公眾號:python愛好部落