楼主: Self_Learner
跳转到指定楼层
上一主题 下一主题
收起左侧

转行SDE 准备打卡贴

 
🔗
michael323 2018-9-24 22:07:32 | 只看该作者
全局:
Self_Learner 发表于 2018-9-24 15:01
刚给你回了,可能回复里涉及其他平台的信息,说是需要审核,不行的话我再发消息给你吧。

嗯好的,期待!谢谢楼主,一起加油!
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-3 11:40:01 | 只看该作者
全局:
最近做的两个OA

Coursera:http://www.1point3acres.com/bbs/thread-445867-1-1.html
LinkedIn: http://www.1point3acres.com/bbs/thread-446930-1-1.html
自己总结Coursera OA题目汇总:http://www.1point3acres.com/bbs/thread-446702-1-1.html

题都做出来了,test全过,但是提交之后都还木有消息。。。希望能早日拿到电面啊

最近做题看书效率比较低。。。静不下心来。。。
回复

使用道具 举报

🔗
peteryang 2018-10-6 11:53:50 | 只看该作者
全局:
支持楼主,继续加油!summer就开始准备了是吧,现在都有OA了,估计你onsite也不远了
回复

使用道具 举报

🔗
elaineeeeyuxy 2018-10-9 19:23:43 | 只看该作者
全局:
给楼主一个赞,一起努力
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-10 05:59:01 | 只看该作者
全局:
更新一下状态,目前做的三个OA都还没有消息,上周找人内推了Amazon和Google, 还在等消息,希望能过简历关。

最近一周没怎么刷题,主要想准备一下OO design方面的问题。这几天把Head First Design Pattern 重新从头到尾过了一遍,对书里提到的几个经典的设计模型算比较了解了。但是发现真碰到design题目的时候,这些设计模型往往并不直接相关。比如说设计一个Chess Game,或者Call Center等等,往往并不太牵扯到设计模型,更主要的是去分析,需要实现哪些功能目的,有哪些User Cases, 有哪些主要的Abstractions,也就是核心的类,以及每个类需要提供哪些methods,然后如何将这些核心类和方法整合在一起来实现功能。在完成这些基本功能的设计之后,可能才需要用到设计模式来对代码进行重构,提高代码的可复用性,可扩展性,可维护性等等。

当然,常见的设计模式还是得了解,但是对于面试的话,还是得拿一些经典的题目来做practice,比如停车场,酒店预定系统,chess game 之类的。不然真让我在完全没准备的情况下设计一个chess game,我觉得我就只能懵了。
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-12 13:02:37 | 只看该作者
全局:
记录了一下今天的工作时间,有效利用的时间只有8个小时, 9: 30 - 11: 30 am, 1: 30 - 2: 30 pm, 3:10 - 5: 25 pm, 6:50 - 9 :50pm, 特别是一个早上只工作了俩小时。。。平时如果不做记录的话,工作时间还达不到这样。。。不记录一下都不知道自己浪费了多少时间,所以以后刷题帖还是要尽量日更。

今天上午读了Java Docs Inheritance 相关的内容,总结如下:
(1) Java 不支持Multiple Inheritance,也就是说一个subclass只能有一个direct superclass (Object 除外,Object没有superclass),一个原因是为了要避免Multiple Inheritance of states issues, 因为class 是有instance variable的,如果支持Multiple inheritance的话,多个superclass可能有相同的instance variable, 这样compiler无法辨别应该使用哪一个。
(2) 一个subclass可以implements多个interface, interface 没有 instance variable, 所以不存在上述问题。
(3) 既然一个class一个extend一个superclass, 同时implements多个interface, 如果这些superclass和interface当中有多个具有同样signature的method, compiler如何选择:
* Compiler 会跟根据inheritance rule来做选择:
    * superclass 的instance method比interface 的default method 优先级更高  (第一次知道interface 也是可以有implemented method 的)
    * 已经被override的method不予考虑
    * 在这两个规则之下,如果还有多个methods具有相同的signature,那么compiler报错
(4)subclass 继承superclass当中所有的public, protected, package-private fields 和methods。superclass 的 private fields 不能被继承,但是如果superclass中有public method可以access这些private fields, 那么这些fields也可以被subclass使用。
(5)subclass 不继承superclass的constructor, 只能invoke, 用法是super(…), 如果sublass 的constructor 没有explicitly地调用super(…), compiler会自动插入一个non-arg super constructor, 也就是super(), 此时,如果superclass里没有 non-arg constructor,compiler 就会报错
(6)Abstract class  和 interface 的异同
* 同: 都不能被instantiate, 都包含有一系列methods (with or without implementation)
* 异:
    * interface 的fields自动被设置为public static final, 而abstract class是能够有non-static, non-final  fields的
    * Interface 只能declare public method, abstract class 能够包含各种access level 的methods
* 啥时候用abstract class,啥时候用interface
    * 当应用这个superclass 或者interface的classes是一系列紧密相关的classes,需要share很多同样的fields的时候,考虑abstract class,比如说,如果你的classes 是 MountainBike 和RoadBike, 那么把Bike设置成abstract class就比较好,因为MountainBike和RoadBike有很多部件(fields)都是相同的。
    * 相反当应用这个superclass 或者interface的Classes是unrelated的时候, 比如说很多的类都需要能够compare,clone, 或者serialize, 那么Comparabe(), Clonable(), Serializable()这些就应该设置成interface
    * 当然superclass 只能有一个,interface能够有多个,也是很重要的考量方向。

下午在做一个OODesign的practice: ChessGame design:
看到一个很好的视频:https://www.youtube.com/watch?v=h8fSdSUKttk
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-13 13:35:58 | 只看该作者
全局:
今天的工作时间: 8:45 - 9:45(am), 10:00 - 11:00(am), 11:15 - 12:00 (am)
                             1:30 - 2:50(pm), 3:20 - 5:50(pm), 7:30 - 10:00 (pm) 一共九小时,效率中等吧。

上午看了Java Doc上关于Concurrency的部分内容,感觉看Java doc比去搜一些片段的解释,更有助于理解。
(1) 进程和线程:
*  进程是相对独立的execution environment, 通常可以认为一个program,或者一个app是一个进程(不准确),进程有各自的runtime resources,包括各自的memory space, 不同进程之间不share这些resources, 进程通过OS提供的 Inter Process Communication resources (包括 pipes 和sockets)进行communicates
* 线程存在于进程中,一个进程可以有多个线程,线程之间相互share memory等资源,这使得线程之间的交流更为effective, 但同时也带来一些风险,比如:
    *  thread interleave: 运行在不同线程上的多个操作,同时操作同一Data,这些操作如果不是atomic的,就可能交织在一起,导致某些操作的结果丢失。
    * memory inconsistency issue: 对同一Data,不同线程看到不同的结果。原因我也不清楚。。。

(2) 解决多线程潜在问题的一种方案就是Synchronization, 主要分为两种
* Synchronized methods
* Synchronized statements  (更加fine-grain)
* 要理解synchronization,首先要知道两个概念: Internal lock 和 happens-before relations
    * 当statements之间满足happens-before relations的时候, 前一个statement对memory的改动,对之后的statements是visible的。
    * synchronization的实现是基于object的一个internal entity:叫Internal lock或者monitor lock。当某一个thread invoke object的synchronize method的时候,thread 会“保存”该object的internal lock,任何其他的thread 如果想要access 这个object的 synchronized method, 会因为无法获得internal lock而被block, 直到前一个thread完成了invocation并”归还“internal lock。所以可以有效避免threads interleave.
    * 当thread exit synchronized method的时候, it will automatically established a happens-before relationship with any subsequent invocation of a synchronized method on the same object。所以可以避免 memory-inconsistency issues。

Leetcode 刷题:
Math:
* 415 Adding Strings
* 423 Reconstruct Original Digits from English
* 441 Arranging Coins
* 453 Minimum Moves to Equal Array Elements
* 462 Minimum Moves to Equal Array Element II
* 469 Convex Polygon (很有意思)
* 478 Generate Random Point in a Circle

晚上继续看design Chess Game的视频。
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-14 11:51:01 | 只看该作者
全局:
今天工作了三小时:
LeetCode:
(483) Smallest Good Base
(507) Perfect Number
(517) Super Washing Machines

LeetCode Contest: 4/4
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-15 11:40:25 | 只看该作者
全局:
周末在家,休息看剧看小说运动,今天只工作了2个半小时

LeetCode 刷题: Greedy
(44) Wildcard Matching
(45) JumpGame II
(55) JumpGame
(122) Best Time to Buy and Sell Stock II
(134) Gas Station
(135) Candy
(253) Meeting Rooms II
(316) Remove Duplicate Letters;
回复

使用道具 举报

🔗
 楼主| Self_Learner 2018-10-16 14:54:21 | 只看该作者
全局:
今天工作时间:
上午: 8:30 - 10:00
下午: 12:45 - 1:50, 2: 25: 3: 25, 4:10, 5:10, 6:45 - 8: 15, 8 :50 - 10:00, 10:40 - 11:40
一共工作8小时,上午的利用率还是太低,起的晚。

LeetCode:
Greedy 复习加新题:
(321) Create Maximum Number
(330) Patching Array
(358) Rearrange String K Distance Apart
(376) Wiggle Subsequence
(392) Is Subsequence
(402) Remove K Digits
(406) Queue Reconstruction by Height
(435) Non-overlapping Intervals
(452) Minimum Number of Arrows to Burst Balloons

晚上主要在看Standard的那本A First Course in Database System, 之前学database和SQL主要看的是Head FirstSQL,讲的太浅了,基本知识讲了SQL 也就是relational database programming,之前面TripleByte的时候被问到database normalization和 index的作用的时候,都答不上来。<First Course>讲的比较深入,今天看了两章。

补充内容 (2018-10-16 14:58):
<First Course>那本书是Stanford教材
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表