Родился 30 января 1921 года в селе Корма Добрушского района Гомельской области Белоруссии, в бедной крестьянской семье. Отец - Шамякин Петр Минович. Мать - Санклетия Степановна. Cупруга - Мария Филатовна. Дочери - Липа Ивановна (1941 г. рожд.), Татьяна Ивановна (1948 г. рожд.) и Олеся Ивановна (1960 г. рожд.).
Детство Ивана Шамякина прошло в родном селе, в том заветном уголке, где петухи пели сразу на три республики: Белоруссию, Россию и Украину. Быть может, именно красота родного края помогла развить литературный дар будущего большого писателя. Во время учебы в техникуме строительных материалов Иван Шамякин писал стихи и был членом литобъединения при городской газете "Гомельская правда". В 1940 году, окончив техникум, он женился и стал работать в райпромкомбинате города Белостока. Но вскоре был призван в армию. Служил командиром орудия в 33-м отдельном зенитно-артиллерийском дивизионе в районе Мурманска, где его и застала война.
Мурманск бомбили жестоко, зенитчикам при массовых налетах доводилось сбивать по 3-4 вражеских самолета. Вскоре Шамякина назначили комсоргом дивизиона. Он был знающим пропагандистом и интересным рассказчиком, поэтому бойцы слушали его с удовольствием. Для начальства он составлял всевозможные рапорты, выпускал стенгазету, боевые листки. Тогда же начал публиковаться в армейских газетах. Написал и напечатал первый рассказ.
Воинскую часть, в которую входил 33-й отдельный зенитный дивизион, в начале 1945 года перебросили в Польшу (в Познань), а потом в Германию. Там, на Одере, Иван Шамякин и встретил Великую Победу.